名前空間
変種
操作

コンパイラのサポート状況 (C++17)

提供: cppreference.com

[編集] C++17 のコア言語の機能

C++17 の機能
 
文書
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc
直接リスト初期化に対する新しい auto のルールN392253.819.0*Yes4.10.117.010.317.7
メッセージなしの static_assertN392862.519.10*Yes4.1218.010.317.711.0
テンプレートテンプレート引数における typenameN405153.519.0*Yes4.10.117.010.317.7
トライグラフの削除N408653.516.0*Yes5.010.319.1
ネストした名前空間の定義N423063.619.0*Yes4.1217.010.317.7
名前空間および列挙子に対する属性N42664.9 (partial)*
6
3.619.0*Yes4.1117.010.317.7
u8 文字リテラルN426763.619.0*Yes4.1117.010.317.7
すべての非型テンプレート引数に対して定数評価を可能にするN426863.619.12*Yes5.019.0.110.319.1
畳み込み式N429563.619.12*Yes4.1419.010.318.1
単項畳み込み式および空のパラメータパックP0036R063.919.12*Yes4.1410.319.1
register キーワードの非推奨な使用方法を削除するP0001R173.819.11*Yes4.1318.010.317.7
非推奨な operator++(bool) を削除するP0002R173.819.11*Yes4.1318.010.317.7
例外指定を型システムの一部とするP0012R17419.12*Yes4.1419.010.319.1
基底クラスを持つクラスの集成体初期化P0017R173.919.14*Yes5.019.0.110.319.1
プリプロセッサの条件式における __has_includeP0061R15Yes19.11*Yes4.1318.010.317.7
DR: 継承コンストラクタに対する新しい仕様 (DR1941 他)P0136R173.919.14*Yes6.110.319.1
*this のラムダキャプチャP0018R373.919.11*Yes4.1419.010.318.1
列挙の直接リスト初期化P0138R273.919.11*Yes4.1418.010.319.1
constexpr ラムダ式P0170R17519.11*Yes4.1419.010.318.1
範囲ベースの for における begin と end の型を別々にするP0184R063.919.10*Yes4.1218.010.317.7
[[fallthrough]] 属性P0188R173.919.10*Yes4.1318.010.317.7
[[nodiscard]] 属性P0189R173.919.11*Yes4.1318.010.317.7
[[maybe_unused]] 属性P0212R173.919.11*Yes4.1318.010.317.7
16進浮動小数点リテラルP0245R13.0Yes19.11*Yes4.1318.010.317.7
繰り返しなしの属性名前空間の使用P0028R473.919.11*Yes4.1318.010.317.7
オーバーアラインされたデータのための動的メモリ確保P0035R47419.12*

10.0.0*

4.1419.010.319.1
クラステンプレートの実引数推定P0091R37519.14*Yes5.019.0.110.319.1
auto 型を用いた非型テンプレート引数P0127R27419.14*Yes5.019.0.110.319.1
コピー省略の保証P0135R17419.13*Yes5.019.0.110.319.1
参照メンバを持つクラスオブジェクトの再配置P0137R17619.14*Yes5.010.319.1
より厳格な式の評価順序P0145R37419.14*Yes5.019.0.110.319.1
構造化束縛P0217R37419.11*Yes4.1419.010.318.111.0*
未知の属性を無視するP0283R2Yes3.919.11*Yes4.1318.010.317.7
constexpr ifP0292R273.919.11*Yes4.1419.010.318.111.0
if および switch に対する初期化文P0305R173.919.11*Yes4.1418.010.318.1
インライン変数P0386R273.919.12*Yes4.1419.010.318.111.0
非推奨な例外指定を C++17 から削除するP0003R57419.10*Yes4.1419.010.319.1
using 宣言におけるパック展開P0195R27419.14*Yes5.019.010.319.1
DR: テンプレートテンプレート引数のマッチングから互換なテンプレートを除外するP0522R07419.12*Yes5.019.0.110.319.1
C++17 の機能
 
文書
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc

[編集] C++17 のライブラリの機能

C++17 の機能
 
文書
 
GCC libstdc++
Clang libc++
MSVC の
標準ライブラリ
Apple Clang
Intel Parallel STL
Sun/Oracle C++ の
標準ライブラリ
Embarcadero C++ Builder の
標準ライブラリ
Cray C++ の
標準ライブラリ
std::void_tN391163.619.0*YesN/A10.3
std::uncaught_exceptions()N425963.719.0*YesN/A
std::size()std::empty() および std::data()N428063.619.0*YesN/A10.3
std::pairstd::tuple の改善N43876419.0*YesN/A10.3
std::bool_constantN438963.719.0*YesN/A10.3
std::shared_mutex (タイムアウト付きでない)N450863.719.0*YesN/A10.3
型特性変数テンプレートP0006R073.819.0*YesN/A10.3
論理演算子型特性P0013R163.819.0*YesN/A10.3
Parallelism TS の標準化P0024R29*19.14*18.0*
std::clamp()P0025R073.919.0*

10.0.0*

N/A10.3
ハードウェア干渉サイズP0154R119.11*N/A
スワップ可能型特性P0185R173.919.0*

10.0.0*

N/A10.3
ファイルシステムライブラリP0218R18719.14*

11.0.0*

N/A10.3
std::string_viewN3921
P0220R1
7419.10*

10.0.0*

N/A10.3
std::anyP0220R17419.10*

10.0.0*

N/A10.3
std::optionalP0220R17419.10*

10.0.0*

N/A10.3
多相メモリリソースP0220R1919.13*N/A10.3
数学の特殊関数P0226R1719.14*N/A10.3
C++17 は C99 ではなく C11 を参照するべきP0063R39719.0*
(partial)*

10.0.0*

N/A
map と set のスプライシングP0083R37819.12*

10.0.0*

N/A
std::variantP0088R37419.10*

10.0.0*

N/A10.3
std::make_from_tuple()P0209R273.919.10*YesN/A10.3
std::has_unique_object_representationsP0258R27619.11*YesN/A10.3
std::gcd()std::lcm()P0295R07419.11*YesN/A10.3
std::not_fnP0005R4
P0358R1
73.919.12*YesN/A10.3
初等文字列変換P0067R58 (no FP)7 (no FP)19.14* (no FP)*
19.24*

10.0.0* (no FP)

N/A
std::shared_ptrstd::weak_ptr の配列サポートP0414R271119.12*N/A10.3
std::scoped_lockP0156R27519.11*YesN/A10.3
std::byteP0298R37519.11*YesN/A10.3
std::is_aggregateLWG29117519.15*YesN/A10.3
C++17 の機能
 
文書
 
GCC libstdc++
Clang libc++
MSVC の
標準ライブラリ
Apple Clang
Intel Parallel STL
Sun/Oracle C++ の
標準ライブラリ
Embarcadero C++ Builder の
標準ライブラリ
Cray C++ の
標準ライブラリ