簡體   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