首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vc2012上的std:string好像不支持右值引用语义

2012-10-13 
vc2012下的std::string好像不支持右值引用语义代码:std::string s(1234567890)std::string ss(std::mov

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的空间拿了过来。

[解决办法]
s是栈上的, 只是把内部的char*拿走了, 栈上的s怎么会自己消失呢?

热点排行