首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将g++设置为遵循C++11 ISO (-std=c++11)通过#define?

是否可以将g++设置为遵循C++11 ISO (-std=c++11)通过#define?
EN

Stack Overflow用户
提问于 2018-11-15 14:04:12
回答 2查看 730关注 0票数 8

我对c++11很陌生,我想知道.

我正在使用代码::块,如果我要在这个IDE中使用c++11,我必须转到编译器设置,并检查"Have g++ follow the C++11 ISO C++ language standard

有什么解决办法吗?这样我就可以在.cpp语句中设置一个c++11文件来使用#define了?

注意:这是一个单独的“构建”文件,而不是项目

通过设置编译选项而不是在项目中,它将设置为全局编译选项,这是我希望不会发生的

我知道您可以在Project中自定义build选项,它将只为该项目设置c++11

代码语言:javascript
复制
#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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-15 14:14:48

虽然我可以看到源文件在这方面是如何自我记录的,但这是不可能的。

接下来最好的方法是测试一致性,就像您已经开始做的那样:

代码语言:javascript
复制
#if __cplusplus < 201103L
#error This source must be compiled as C++11 or later
#endif

这将确保使用C++03编译器编译将立即提供一个简单、可理解的错误消息。

票数 6
EN

Stack Overflow用户

发布于 2018-11-15 14:05:26

是否可以将g++设置为通过#define遵循C++11 ISO (-std=c++11)?

No..

C++和g++都没有这个特性。您可能需要手动构建简单的单文件程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53321215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档