条件付きコンパイルでC++標準のバージョンを調べる方法

条件付きコンパイルで、C++標準のバージョンを調べるときは __cplusplus プリプロセッサマクロを使います

たとえば以下のコードは、c++のコンパイラが c++11 に準拠していない場合、コンパイルエラーとなります

#if __cplusplus < 201103L
#  error "C++11に対応していません"
#endif

C++標準と、値の対応関係は以下の通り

C++標準 値
C++11 201103L
C++14 201402L
C++17 201703L
C++20 202002L
C++23 202302L