2016-08-11 8 views
1

Michael Wongによると、同時実行TSは、実装経験がありますが、明らかなぜ並行性TSの部分がC++ 17になっていないのですか?

、それはちょうど承認され、C++ 17に追加されるように投票するには余りにも新鮮ですして、完全にもかかわらず、で行くのではありません。

私のお気に入りの提案はN3327にもともといたが、私は最初N3857/N3784にそれを読んで、C++ 14のためにそれを期待していました。 futuresは2013年から.then() in Boostを実装しており、マイクロソフトはPPLでこれらのフォームを実装しているため、問題が発生し、議論され、修正されます。 .get()の非同期バージョンは必然であり、N3865(「std :: futureへのさらなる改善」)が.then()が与えられたかのように話した2014年の初めから決定されたようです。つまり、N3327が最初に「合理化」されたために.then()を提出してから5年後でさえ、議論され、実施された提案は、それに接する議論によってブロックされます。

出荷前に2020年になる予定です。

Concurrency TSは完全なものか何も提案されていませんか?もしそうなら、なぜですか?

+0

あなたはいつも自分の先物を実装することができますが、それはうんざりですが、本当にその標準は必要ありません。 –

+0

私はブーストの嫌いにもかかわらず、ブーストの実装を使用し続けます。 –

+1

TSはおそらく2020年より前に利用可能になるでしょうか?それは '<実験的/未来>'のためのものであり、新しいhas_includeのものです:正式な標準になる前にそれを使い始めることができます。高い信頼性で標準化されます。それをサポートします。 – Yakk

答えて

3

出荷前には2020年になる予定です。

出荷時です。ちょうどC++標準自体ではありません。

あなたはTSをある種の架空のドキュメントと考えるべきではありません。本当のことですが、多くのベンダーがTSを実装しています。 MicrosoftやlibC++はFileSystem TSをサポートしています。

コンパイラおよび標準ライブラリベンダーは、完全な機能を備えており、これらの機能を完全に実装しています。コンセプトTSなどはもちろんですが。したがって、並行性TSが最優先事項ではないことは驚くことではありません。

なぜ並行処理の部分がC++ 17に追加されなかったのかについて、ジャクソンビル会議の議事録は、SG1(並行処理の問題の研究グループ)が特にParallelism TSを標準に追加することを提案しましたが、並行性TSの場合はそうです。そこで彼らは明らかにConcurrency TSが標準ライブラリに追加される準備が整っていないと感じました。

+0

さらに、Boostの種類はConcurrency TSの重要な部分を実装しているため、ベンダーはそれらを実装する必要がありません。 – Morwenn

+1

@Morwenn:BoostはまずFileSystemを実装しましたが、libC++やMicrosoftがそれを優先させることはありませんでした。 –

+0

本当に優先事項でしたか?私はそれを知らなかった。 – Morwenn

関連する問題