vc2012下的std::string好像不支持右值引用语义
代码:
std::string s("1234567890");
std::string ss(std::move(s));
printf("%p %s\n", s.data(), s.data());
printf("%p %s\n", ss.data(), ss.data());
执行之后,ss仍然重新分配了空间,s的空间仍然存在,只是把第一个字符置成了\0(即变成了一个空字符串),这个不符合c++0x标准啊!是不是要定义什么宏打开某个开关啊?
在linux下就没有问题,ss完全将s的空间拿了过来。