私は2014年ごろに一般公開されるC++ライブラリを作成していますので、現在は設計の選択肢があります。 C++ 14でリリースされる非常に便利なツールの1つはstd::optional
です。私はg++/libstdc++
のバージョンを知りたいのですが、-std=c++1y
を使用することができます。g ++/libstdC++のstd :: optionalの実装ステータス?
答えて
std::optional
は、最終的なC++ 14標準には含まれていないため、-std=c++1y
では使用できません。 GCC 4.9には、std::experimental::optional
が含まれ、-std=c++1y
で使用できます。
std::optional
と-std=c++1z
、すなわちC++ 17が含まれます。
オリジナルの答え(2013年6月):それは、現在実装されていないのです
は、GCCのトランク内のC++ 14個の機能のステータスをhttp://gcc.gnu.org/ml/libstdc++/2013-06/msg00032.htmlを参照してください。
いつ実装されるかは、誰かがボランティアの仕事をしたときに依存するため、予測することは不可能です。
私はを期待しています。 GCC 4.9はC++ 14の直前にリリースされる予定ですが、保証はありません。 GCC 4.9(GCC Subversionトランク)とは異なり、__cplusplus
マクロの値は-std=c++11
と-std=c++1y
と同じですので、GCC 4.8の場合は、-std=c++1y
の機能を選択的に有効にする方法はありませんのみ。
"なぜこれを頼むの?" - だから、答えを探している人はそれを見つける! –
これは、gccで 'std :: optional'が動作しなかった理由を調べていたとき、Googleのトップヒットでした!だから私はそれが頼まれてここで答えられてうれしいです。 –
gcc-helpリストでトップヒットになっていた質問がある場合。とにかく、この回答は昨日まで間違っていました。なぜなら、C++ 17までは 'std :: optional 'なんてなかったからです。だから最近までコンパイラではうまくいきませんでした。 –
- 1. std :: anyとstd :: optionalのany_cast
- 2. boost :: any_castとstd :: optionalの
- 3. std :: optionalの簡単なデフォルトコンストラクタ
- 4. G.711 C++の実装
- 5. なぜstd :: optional :: value()&&;リターン&&?
- 6. std :: optionalと "unused/default"の値の使用
- 7. std :: is_nothrow_copy_constructibleの実装は何ですか?
- 8. MATLABのMeijerのG関数の実装
- 9. no-op std :: ostreamの実装
- 10. libC++ std :: condition_variable_anyの実装
- 11. std :: forward実装の違い
- 12. std :: promiseのVC++実装
- 13. SIMD実装のstd :: nth_element
- 14. C#WinformとMotorola MC9090-Gの実装
- 15. 入手方法-std = C++ 11 w/libstdC++?
- 16. Orange3をAnacondaにインストールする:g ++とlibstdC++の不一致
- 17. g ++でstd :: variantを使用する
- 18. std :: iteratorを実装する
- 19. のstdは::考えるのlibstdC++の乖離とのlibC++
- 20. C++でのstd :: forward_list swap()の実装
- 21. Visual Studioでのstd :: experimental :: source_locationの実装
- 22. std :: listの実装<bool>
- 23. constexpr std ::任意の実装可能
- 24. std :: listの割り当てに関するlibstdC++の不具合?
- 25. のstd :: G上の巨大なコード
- 26. value_if - std :: optionalのvalue_orの逆数ですか?
- 27. のstd ::移動(STD ::配列)G ++ VSビジュアルC++
- 28. g ++コマンドラインで-std = C++ 11の位置
- 29. libstdC++のstd :: vector <bool> :: dataは何をしますか?
- 30. std :: optionalの背後にある根拠は何ですか?
私はC++ 14タグwikiにリンクされているMetaディスカッションごとにC++ 1yに変更しました。最終的なドラフトスタンダードがリリースされるまで[タグ:C++ 14]を使用しないと決定しました。 – chris
参照実装を使用したい人は、[ここ](https://github.com/akrzemi1/Optional/)です。 – PeterT