nsCharTraits<OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
nsCharTraits<typename OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
copy_string_backward( InputIterator first, InputIterator last, OutputIterator result )  {    while ( first != last )      {        PRUint32 lengthToCopy = PRUint32( NS_MIN(last.size_backward(), result.size_backward()) );        if ( first.fragment().mStart == last.fragment().mStart )          lengthToCopy = NS_MIN(lengthToCopy, PRUint32(last.operator->() - first.operator->()));        NS_ASSERTION(lengthToCopy, "|copy_string_backward| will never terminate");        nsCharTraits<OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);        last -= PRInt32(lengthToCopy);        result -= PRInt32(lengthToCopy);      }    return result;  }