isocpp.orgで先行公開されたペーパーを紹介。
New paper: N3711, Task Groups As a Lower Level C++ Library Solution To Fork-...—Laksberg, Sutter
並列アルゴリズムの実装で使う、タスクグループの低レイヤークラスの提案。
template <typename Func1, typename Func2> void parallel_invoke(const Func1& f1, const Func2& f2) { task_group tg(/* ... */); tg.run(f1); tg.run_and_wait(f2); }
New paper: N3716, A printf-like Interface for the Streams Library (revision 1)—Zhihao Yuan
printfのようなフォーマットを使えるストリームライブラリの提案。
Boost.Formatの可変引数テンプレート版。%dや%dのような、従来のprintfがもつ型フォーマットの他に、Boost.Formatが持っている%1%(第1引数を意味する)のような位置プレースホルダを持つ。
cout << putf("%2%: %1%\n", 42, "The answer");
New paper: N3708, A proposal to add coroutines to the C++ standard library—O Kowalke, N Goodspeed
コルーチンライブラリの提案。コルーチンがpush_typeとpull_typeで分かれていて、データを提供するコンテキストと、データを受け取るコンテキストで、型の使い分けをわかりやすくしているのが特徴。
std::coroutine<int>::pull_type source( // コンストラクタ呼び出しは、コルーチン関数に入る [&](std::coroutine<int>::push_type& sink) { sink(1); // メインコンテキストに {1} を返す sink(1); // メインコンテキストに {1} を返す sink(2); // メインコンテキストに {2} を返す sink(3); // メインコンテキストに {3} を返す sink(5); // メインコンテキストに {5} を返す sink(8); // メインコンテキストに {8} を返す }); while (source) { // コルーチンのコンテキストが有効かどうか確認 int ret = source.get(); // データにアクセスする source(); // コルーチン関数にコンテキストを切り替える }
New paper: N3733, ISO/IEC CD 14882, C++ 2014, National Body Comments—Barry Hedquist
C++14の仕様に対する、各国からのコメント。
日本からはとくにありません。