nsCharTraits<InputIterator::value_type>::copy(result.operator->(), first.operator->(), lengthToCopy);
nsCharTraits<CharT>::copy(result, first.operator->(), lengthToCopy);
string_copy( InputIterator first, InputIterator last, OutputIterator result )  {    while ( first != last )      {        PRUint32 lengthToCopy = PRUint32( NS_MIN(first.size_forward(), result.size_forward()) );        if ( first.fragment().mStart == last.fragment().mStart )          lengthToCopy = NS_MIN(lengthToCopy, PRUint32(last.operator->() - first.operator->()));        // assert(lengthToCopy > 0);        nsCharTraits<InputIterator::value_type>::copy(result.operator->(), first.operator->(), lengthToCopy);        first += PRInt32(lengthToCopy);        result += PRInt32(lengthToCopy);      }    return result;  }