【发布时间】:2014-07-25 07:36:23
【问题描述】:
我正在用这个简单的例子测试 std::move
但是当我尝试编译这段代码时,出现了错误
#include <utility> // std::move
#include <iostream> // std::cout
#include <vector> // std::vector
#include <string> // std::string
int main () {
std::string foo = "foo-string";
std::string bar = "bar-string";
std::vector<std::string> myvector;
myvector.push_back (foo); // copies
myvector.push_back (std::move(bar)); // moves
std::cout << "myvector contains:";
for (std::string& x:myvector) std::cout << ' ' << x;
std::cout << '\n';
return 0;
}
但eclipse中的控制台窗口似乎说编译成功,如下所示
所以我尝试使用控制台命令而不是 eclipse 来检查什么是正确的
g++ -D__GXX_EXPERIMENTAL_CXX0X__ -std=c++11 test.cpp
这很成功并且有效。
eclipse有什么问题?
我使用的是 eclipse 3.8 版
【问题讨论】:
-
你的意思是eclipse的内部解析器(相当于Visual的intelisense)显示错误,而普通编译器不显示错误?
-
是的,好像是这样