我刚刚在我的机器上安装了最新版本的cygwin和eclipse luna。它工作正常,我能够运行我的项目。然而,当我建立它们时,我得到了我不明白的警告。例如,以下是我从“c ++ Primer”一书的网站获得的头文件“Sales_item.h”中的警告:
warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
Sales_item() = default;
^
../src/Sales_item.h:70:27: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
unsigned units_sold = 0; // explicitly initialized
^
../src/Sales_item.h:71:22: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
double revenue = 0.0;
^
Finished building: ..
这些警告意味着什么?我应该做点什么吗?
答案 0 :(得分:4)
将-std=c++0x
,-std=c++11
或-std=c++1y
添加到编译器标记中。
您可以看到编译器说:
defaulted and deleted functions only available with -std=c++11 or -std=gnu++11
在终端中编译的示例:
g++ -std=c++0x main.cpp -o myExe
在Eclipse中,正如πάνταῥεῖ所建议的那样,你可以这样做:
Project ->Properties ->C++ Build ->Misc Options
或者,在我的Kepler Eclipse中,可以右键单击该项目,然后:
Properties ->C++ Build -> Settings
并在Command文本框中,您可以看到您正在使用的编译器。你也可以在那里编写编译器标志。
如需了解更多信息,请按照Baum mit Augen的建议阅读此answer。