【发布时间】:2023-03-22 10:32:01
【问题描述】:
我想在<utility> 中使用std::move 函数。所以我在我的代码顶部加上了一个包含这个和所有其他的。但是,当我使用 move 函数时,eclipse 会将其下划线为红色,并且不会编译。我知道我使用的是 c++ 11,因为我可以声明移动构造函数,但是,这不起作用。我正在使用 GCC 进行编译,并且使用了 -std=c++11 选项。我也把它放在我的链接器中。在此之前#include <utility> 不会出现。我需要包含其他内容吗?
这是基本问题。 std::move(...) 似乎没有定义。
#include <utility>
#include <vector>
int main()
{
std::vector<int> v1;
std::vector<int> v2;
v1 = std::move(v2); // Function move could not be resolved.
return 0;
}
还有我在编译器上设置的选项 -O3 -g3 -Wall -c -fmessage-length=0 -std=c++11
【问题讨论】:
-
您要添加什么
#include?std::move包含在<utility>中。 -
最好在您的问题中包含编译器错误的全文。
-
你是否在eclipse项目设置中将
-std=c++11添加到编译器参数? (或者偷偷地......只是对(T&&)进行强制转换...... -
我在 GCC C++ 编译器中添加了 -std=c++11。在此之前,我在编写移动移动构造函数时遇到了构建错误。
-
您有构建错误吗?或者您只有 Eclipse 下划线错误?