このページはC++11に採用された言語機能の変更を解説しています。
のちのC++規格でさらに変更される場合があるため関連項目を参照してください。
概要
SD-6 は C++11 の機能について以下のテストマクロを定義することを推奨している:
マクロ名 | 値 | 機能 | ヘッダ |
---|---|---|---|
__cpp_alias_templates |
200704 |
エイリアステンプレート | predefined |
__cpp_attributes |
200809 |
属性 | predefined |
__cpp_constexpr |
200704 |
constexpr |
predefined |
__cpp_decltype |
200707 |
decltype |
predefined |
__cpp_delegating_constructors |
200604 |
委譲コンストラクタ | predefined |
__cpp_inheriting_constructors |
200802 |
継承コンストラクタ | predefined |
__cpp_initializer_lists |
200806 |
初期化子リスト | predefined |
__cpp_lambdas |
200907 |
ラムダ式 | predefined |
__cpp_nsdmi |
200809 |
非静的メンバ変数初期化子 | predefined |
__cpp_range_based_for |
200907 |
範囲for文 | predefined |
__cpp_raw_strings |
200710 |
生文字列リテラル | predefined |
__cpp_ref_qualifiers |
200710 |
*this のムーブセマンティクス |
predefined |
__cpp_rvalue_references |
200610 |
右辺値参照 | predefined |
__cpp_static_assert |
200410 |
コンパイル時アサート | predefined |
__cpp_unicode_characters |
200704 |
ユニコード文字 | predefined |
__cpp_unicode_literals |
200710 |
ユニコードリテラル | predefined |
__cpp_user_defined_literals |
200809 |
ユーザー定義リテラル | predefined |
__cpp_variadic_templates |
200704 |
可変引数テンプレート | predefined |
__has_cpp_attribute(carries_dependency) |
200809 |
属性 | predefined |
__has_cpp_attribute(noreturn) |
200809 |
属性 | predefined |