繁体   English   中英

Eclipse CDT项目中默认的C ++标准是什么?

[英]What is the default C++ standard in an Eclipse CDT project?

我正在将Eclipse CDT 3.8.1和GCC Cross Compiler 8.6.0一起使用。 我知道如何在项目属性中更改C ++标准,但是我不知道默认情况下使用什么标准。

我知道默认的不是C ++ 11,并且Eclipse语言支持页面没有提到C ++ 03,所以我怀疑默认的是C ++ 98。 但是,Eclipse CDT必须支持C ++ 03,因为添加编译器标志-std = c ++ 03不会引起任何错误。 https://www.eclipse.org/community/eclipse_newsletter/2017/april/article3.php

创建新项目时的默认标准是什么?

Eclipse的解析器本身没有C ++标准模式的概念。 它将识别解析器中已实现的所有C ++功能(在撰写本文时,它是所有C ++ 98和C ++ 11功能,一些(但不是全部)C ++ 14功能以及少数几个C ++ 17功能)。

但是,标准库头文件通常包含以表示C ++标准版本的宏为条件的部分(例如, #if __cplusplus >= 201103是对“ C ++ 11或更高版本”的常见检查)。 为了确定这些宏的值,Eclipse调用项目工具链中指定的编译器来发现内置宏。 例如__cplusplus宏的发现值将取决于编译器为此调用运行的标准模式。

如前所述,此编译器调用的标志在项目属性中指定。 如果您在此处未提供标志,则编译器将使用其默认模式。 我相信GCC从GCC 6开始就一直使用-std=c++14作为默认值。 (尽管我不太清楚“ GCC交叉编译器8.6.0”是什么。根据GCC网站 ,最新版本是8.1。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM