我对c++11很陌生,我想知道.
我正在使用代码::块,如果我要在这个IDE中使用c++11,我必须转到编译器设置,并检查"Have g++ follow the C++11 ISO C++ language standard“
有什么解决办法吗?这样我就可以在.cpp语句中设置一个c++11文件来使用#define了?
注意:这是一个单独的“构建”文件,而不是项目
通过设置编译选项而不是在项目中,它将设置为全局编译选项,这是我希望不会发生的
我知道您可以在Project中自定义build选项,它将只为该项目设置c++11
#include <iostream>
#define -std c++11
int main(){
#if __cplusplus==201402L
std::cout << "C++14" << std::endl;
#elif __cplusplus==201103L
std::cout << "C++11" << std::endl;
#else
std::cout << "C++" << std::endl;
#endif
return 0;
}我所发现的:
更改#define __cplusplus 201103L不是一个好主意,因为它没有将编译器设置为c++11
发布于 2018-11-15 14:14:48
虽然我可以看到源文件在这方面是如何自我记录的,但这是不可能的。
接下来最好的方法是测试一致性,就像您已经开始做的那样:
#if __cplusplus < 201103L
#error This source must be compiled as C++11 or later
#endif这将确保使用C++03编译器编译将立即提供一个简单、可理解的错误消息。
发布于 2018-11-15 14:05:26
是否可以将g++设置为通过
#define遵循C++11 ISO (-std=c++11)?
No..
C++和g++都没有这个特性。您可能需要手动构建简单的单文件程序。
https://stackoverflow.com/questions/53321215
复制相似问题