
"Peter Dimov" <pdimov@mmltd.net> writes:
David Abrahams wrote:
"Peter Dimov" <pdimov@mmltd.net> writes:
David Abrahams wrote:
Is this going to be illegal for most fs, then? std::copy( std::istream_iterator<char>(f), std::istream_iterator<char>(), std::back_inserter(my_utf8_string)); I think it pretty much has to work.
my_utf8_string.append( std::istream_iterator<char>(f), std::istream_iterator<char>() );
is the proper spelling. Or, if you prefer,
my_utf8_string.insert( my_utf8_string.end(), std::istream_iterator<char>(f), std::istream_iterator<char>() );
Character by character push_back loops just aren't cool.
Okay, but should we make this well-known and understood idiom one that compiles and fails at runtime?
The well-known idiom is evil, but I see your point. A checking utf8_string probably shouldn't have push_back( char ).
However, how did an utf8_string enter the discussion? Wasn't our unicode string supposed to hold UTF-16 in a clever way that permitted random access, and expose char32_t as its value_type?
I don't know. Been somewhat distracted with the committee meeting so I probably just haven't been paying enough attention to this thread. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com