Clang 3.5からはc++14オプション
これまでC++14の機能は-std=c++1y
オプションで使用できていましたが、Clang 3.5から-std=c++14
オプションが追加されます。(Clang 3.5のリリースブランチにマージされている)
ヘッダファイルが存在するかどうかをチェックする(Clang)
Clangには、__has_include()
という特殊なプリプロセス時判定機能があるようです。
// <atomic>ヘッダを持っているかチェックする #if defined( __clang__ ) #if __has_include( <atomic> ) // ... #endif #endif
Clangは、使用する標準ライブラリを切り替えられることもあって、コンパイラがClangであることと、コンパイラバージョンだけでは、ライブラリの機能が使えるかどうかわかりません。そういった状況でこの機能が有効なようです。
GCCでも話は出ているようです。
__has_include() macro implementation can be accepted in GCC?