一件有意思的事情:关于std::string和std::auto_ptr

因为某些原因
将自己的一些库(VC7.1)给另一个同事用
他用的是VC6

……
发现编译报错!?!!
竟然说是std::string::clear 和 std::auto_ptr::reset没有!!!
查了一下P。J那恶心的源码(因为这STL是商业化版本,于是他故意使用混淆器打乱过的,也就是说他手上有一份“完好的”,给咱们的却是面目全非的!这个死鬼XD,还好我们有STLPort)
果然没有

……
google~~~
原来是因为在VC6出世的那个年代
std::string::clear这个method尚只是草案
而std::auto_ptr::reset更是迟迟没有standardization

……
作为替代
clear可以用erase(begin(), end())取代(其本身实现也是如此)
reset可以用release()取代“释放”的动作,另一个所有权转移动作就没办法了

P。J & VC6~~~~~~~~~  go die go die!!!

你可能感兴趣的:(String)