簡體   English   中英

C ++標准中的預處理器宏

[英]Preprocessor macros in the C++ standard

我很驚訝地看到ATOMIC_FLAG_INIT被描述為C ++ 11標准中定義的預處理器宏。 這是一個例外,還是新的C ++標准確實涵蓋了預處理程序步驟?

在我看來,預處理器實際上是一種其本身的語言,如今的趨勢似乎是不鼓勵使用它。

當然,C ++標准涵蓋了預處理器。 實際上,標准中有一整章 翻譯的第三和第四階段主要處理預處理器。

C ++標准還指定了許多預定義的宏 assert也是一個宏,就像您發現的原子初始化器一樣。

在某些情況下,宏仍然有用,但是最新的C ++標准的功能(例如constexpr函數/變量)可以更好地覆蓋許多最常見的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM