c 11 主要的新语言特性,关于c ++ 11:有没有办法确定C ++编译器实现的语言特性?...
不同的C ++編譯器在不同的時間點實現各種語言功能(例如,參見clang C ++ status和gcc c ++ status;同樣適用于其他編譯器)。 在創建C ++庫時,通常需要支持最新功能以改善用戶體驗。 當支持新功能而不是在任何地方實現的公共子集時,了解編譯器支持哪些功能而不必為每個編譯器支持一組版本號是有幫助的。
是否有合理標準化的功能測試集可以在編譯時用于確定編譯器是否支持特定的語言功能?
對于聲譽很高的人來說,這是一個非常糟糕的問題。 這是非常自以為是的。
@EdHeal從實際角度來看也非常重要
可能已經被程序員回答了.stackexchange.com / items / 199708 /
@EdHeal:問題可能有一定程度的意見。 我也認為有一個完全中立的答案。
@PeterM:雖然我看了,但我沒有在那里找到問題。 奇怪的是,它也被認為是偏離主題的 - 也許它在這里是主題。
我所做的只是谷歌c++ compiler test suite,這是最重要的鏈接
第二個鏈接是opengroup.org/testing/testsuites/perenial.htm
您可能無法比Boost.Config庫做得更好。它定義了各種C ++ 11和C ++ 14特性的預處理器宏,這些特性在VC ++等C ++ 11/14-ish編譯器上并不普遍支持。它就像你要達到標準一樣接近。
IIRC,它與autoconf類似,通過預建(并在必要時執行)一堆簡單的測試程序。我不認為你會得到任何完全在編譯時運行的東西,只是因為在一個實現中存在關鍵字,而在另一個實現中存在語法錯誤。
這個答案是一般定理的必然結果,如果你有C ++問題,首先看看Boost是否有答案。
"IIRC,它與autoconf類似,通過預建(并在必要時執行)一系列簡單的測試程序。" 不,Boost.Config實際上是完全編譯時,每個編譯器,標準庫和平臺配置使用版本檢測宏來選擇性地啟用隨后通過宏而不是關鍵字使用的功能。
我沒有嘗試使用這些建議,但在C ++委員會會議上,功能測試SG(SG10)滿足并更新了一系列建議。這是列出當前功能測試宏的最新文檔:有各種語言級功能的宏。期望在將新功能投入工作草案時更新文檔P0096rx。
本文檔不是標準文檔:標準要求實現語言標準,標準化宏指示是否實現特定功能是沒有意義的!實現要么完全符合要么不符合要求。但是,期望編譯器供應商確實使用這些宏作為幫助用戶的指導。
不幸的是,上次我檢查MSVC沒有計劃實現功能測試宏。
總結
以上是生活随笔為你收集整理的c 11 主要的新语言特性,关于c ++ 11:有没有办法确定C ++编译器实现的语言特性?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用c写按键精灵脚本语言,按键精灵之插件编
- 下一篇: android最新框架,XUpdate