Quote Originally Posted by 2kaud View Post
Why not just replace std::copy with memmove()?
"specs" :s (I will reserve to keep to myself any impressions on the mental sanity of whomever wrote those specs.)

It's fine if the compiler optimizes to it, but can't write them myself.




Quote Originally Posted by superbonzo View Post
on the contrary, if you have a compliant c++11 compiler a do-nothing default constructor
Nope, needs to work among others on VS2010 and an older version of GCC. so I can't assume full C++11 compliance.

anyway, did you considered codeplug's reserve+assign+c_str suggestion ? I think you could even spare the reserve call ( being the const char* returned by c_str() random access iterators, the reserve should be done automatically, but I'm not sure though ... )
Yes, Even mentioned this before.
THe problem being that a std::string does not usually have a terminator, and calling c_str() could cause a realloc to insert it, which is the whole thing I'm trying to avoid.



Quote Originally Posted by Codeplug View Post
>> I think you could even spare the reserve call
Agreed.
Yes, but see above.