c++ - Eclipse CDT 项目中的默认 C++ 标准是什么?
问题描述
我正在使用 Eclipse CDT 3.8.1 和 GCC 交叉编译器 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 Cross Compiler 8.6.0”是什么。根据GCC网站,最新版本是8.1。)
推荐阅读
- python - 模块文件如何从列表中接收输入?
- java - 在运行时 Java 将对象转换为其特定类型
- python - Python 通过 POST 接收 HTTP 文件
- r - R:获取错误(as.character(FUN),mode =“function”,envir = envir):
- image - unity texture2d getPixel 返回错误的颜色
- python - django/react 检索和播放音频文件
- python - 如何计算此 DFS 代码的时间复杂度?
- python - 如何在 MacOS 上正确安装和运行 virtualenv
- binary - 生成 jpg 文件的许多不同哈希值,而对图片的更改最少
- node.js - 尝试为 selenium-node-firefox 创建 dockerfile