ISO/IEC 14882:2014
読み:アイエスオウ-アイイースィー-いちよんはちはちに-にーゼロいちよん
外語:ISO/IEC 14882:2014
ISO規格による
C++
(
ISO C++
)であるISO/IEC 14882の第4版として予想されるもの。俗に「C++14」と呼ばれる。
目次
概要
新機能
議論
要求
Part 1
Part 2
Part 3
Part 4
概要
前、
C++11
に対するマイナーバージョンアップの仕様である。
C++11で追加されたラムダ式の改良や、整数直定数を'で区切ることで見やすく記述することができる機能などが追加されている。
新機能
整数直定数を'で区切る機能
2進直定数への対応。0b または 0B を冠する (GCCやclangで相当昔から対応していた機能)
議論
要求
次期C++に要求されている機能は次のとおりである。Meeting C++のペーパーよりパートごとに一覧する。
このうちの幾つかがC++14に採用される見込みである。
Part 1
A look at C++14: Papers Part 1
N3525 ‐ ポリモーフィックアロケーター
N3526 ‐
配列
やクラスアグリゲート型に対する一様な初期化
N3527 ‐ std::optional (boost::optionalを標準機能として取り込む)
N3530 ‐ 並列コンピューティング基盤であるOpenMPの機能を標準機能として取り込む
N3531 ‐ UDL(User Defined Literals)を標準機能として取り込む
N3532 ‐ C++ ダイナミック配列
N3533 ‐ C++ コンカレントキュー (
スレッドセーフ
な並列待ち行列)
N3534 ‐ C++ パイプライン (シェルのパイプライン相当の機能を標準機能として取り込む)
N3535 ‐ C++ ストリームに対するmutex
N3536 ‐ C++ サイズの割り当て解除 (グローバルに対するdeleteオペレーター)
N3537 ‐ メモリー割り当ての明確化 (詳細設定可能なメモリアロケーションの導入)
N3538 ‐ const参照または値渡しに関する問題の解決
N3542 ‐ 任意精度整数型を標準機能として取り込む
N3543 ‐ std::priority_queue、std::stack、std::queueをコンテナークラスに置き換える
N3545 ‐ integral_constantの改善
N3546 ‐ TransformationTraitsを扱いやすくするエイリアスを付ける
N3547 ‐ <random> に関する3つの提案
N3548 ‐ 特殊な数学関数の導入
Part 2
A look at C++14: Papers Part 2
N3551 ‐ <random> への新たな関数追加
N3552 ‐ オブジェクトのエイリアスを導入する
N3553 ‐ スワップオペレーター (:=:) の提案
N3554 ‐ C++用の並列アルゴリズムライブラリ
N3555 ‐ C++用のURIライブラリ
N3556 ‐ X-並列計算での
スレッドローカルストレージ
N3557 ‐ Considering a Fork-Join Parallelism Library
N3558 ‐ Fork/Join 並列処理ライブラリの考慮
N3559 ‐ ジェネリック(ポリモーフィック)ラムダ式の提案
N3560 ‐ ラムダ式のアソート拡張の提案
N3561 ‐ ベクトルループのセマンティクス
N3562 ‐ エグゼキューターとスケジューラー (リビジョン 1)
N3563 ‐ C++用のMapReduce (MapReduceは、Googleが提唱したプログラミングモデル)
N3564 ‐ リジューム可能な関数
N3565 ‐ IPアドレス設計の制約
N3568 ‐ C++用の共有ロック
N3570 ‐ 引用符で囲まれた文字列の扱いについての提案
N3571 ‐ SIMD演算をC++標準ライブラリに取り込む
N3572 ‐ 標準ライブラリでのUnicodeサポート
N3573 ‐ 非順序連想コンテナーのヘテロジニアス拡張
Part 3
A look at C++14 and beyond: Papers Part 3
N3574 ‐ 関数ポインターのための std::bound_function の提案
N3575 ‐ アロケーター追加の提案
N3578 ‐ 5つのルールの提案
N3579 ‐ 型特性 std::signature の提案
N3580 ‐ 述語でテンプレートを簡易に制約する概念
N3581 ‐ デリミター付きのイテレーター
N3582 ‐ 通常の関数のreturn型控除
N3583 ‐ 実行時のconstexpr模索
N3584 ‐ タイプ別タプルへのアクセス
N3585 ‐ コンテナーへのイテレータ関連の改善 (リビジョン 2)
N3586 ‐ マップとセットのスプライシング
N3587 ‐ forループとexit戦略
N3588 ‐ make_unique
N3589 ‐ C++用のトランザクション言語構造
N3591 ‐ C++用のトランザクション言語構造での明示的な取り消しに関する議論
N3592 ‐ トランザクションのための代替のキャンセルとデータエスケープメカニズム
N3593 ‐ 文字列分割のアルゴリズム std::split()
N3594 ‐ 要素の範囲を結合するアルゴリズム std::join()
N3595 ‐ 簡素化したADL(実引数依存の名前探索)ルール
N3596 ‐ クラステンプレート特殊化でのコード再利用
N3597 ‐ constexpr の制約緩和
Part 4
A look at C++14 and beyond: Papers Part 4
N3598 ‐ constexpr のメンバー関数と暗黙のconst
N3599 ‐ 文字列のリテラル演算子テンプレート
N3600 ‐ 並列プログラミング用のラッチとバリアーのクラスを標準機能として取り込む
N3601 ‐ 暗黙のテンプレートパラメーター
N3602 ‐ コンストラクターでのテンプレートパラメーター控除
N3603 ‐ 3つのIPアドレスクラスの提案
N3604 ‐ ナローコントラクトのための一元的な防衛的プログラミングのサポート
N3605 ‐ メンバーのイニシャライザーとアグリゲート
N3606 ‐ 追加の検索アルゴリズムを用いるように std::search を拡張
N3607 ‐ std::equal の新バージョン、std::mis_match と std::is_permutation の追加
N3608 ‐ exchange() ユーティリティ関数 (リビジョン 2)
N3609 ‐ 文字列の非所有参照 string_view (リビジョン 3)
N3610 ‐ capture-by-moveに対応するための、ジェネリックラムダのキャプチャーイニシャライザー
N3611 ‐ C++用の有理数ライブラリ
N3612 ‐ C++11用データベースインターフェイスで必要なもの
N3613 ‐ "static if" に対する考察
N3614 ‐ unwinding_exception
N3615 ‐ constexprの変数テンプレート
N3617 ‐ 関数オブジェクトとオーバーロードされた関数の、関数テンプレートによる相互運用
N3618 ‐ シグナルハンドラーの方法 (CWG 1441)
N3619 ‐ 標準ライブラリに std::is_swappable と std::is_nothrow_swappable を追加する提案
N3620 ‐ ネットワークバイトオーダー変換
再検索