私は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. G.711 C++の実装
- 2. SIMD実装のstd :: nth_element
- 3. no-op std :: ostreamの実装
- 4. MATLABのMeijerのG関数の実装
- 5. 入手方法-std = C++ 11 w/libstdC++?
- 6. C#WinformとMotorola MC9090-Gの実装
- 7. C++でのstd :: forward_list swap()の実装
- 8. std :: listの割り当てに関するlibstdC++の不具合?
- 9. g ++コマンドラインで-std = C++ 11の位置
- 10. 現実世界の@optionalプロトコルメソッドの例
- 11. gcc/g ++/libstdC++のコンパイル時に--enable-threads = LIBとは何を意味しますか?
- 12. 私のstd :: list実装のイテレータは動作しません
- 13. std :: stoiとstd :: arrayがg ++でコンパイルされないのはなぜですか?
- 14. Haskellの "Dependent optional"データ
- 15. Haskellの実装
- 16. g ++のstd :: vectorsでの移動セマンティクスの使用
- 17. std :: vectorの自己完結型STL互換実装
- 18. バッファリングされていないstd streambufの実装
- 19. std :: is_functionの実装 - 私の実装の動作が異なるのはなぜですか?
- 20. g ++でのsnprintf()の使用方法-std = C++ 11バージョン4.8.2
- 21. MSVCC/g ++/iccのstd deque/vectorの動作が異なります
- 22. libstdC++ init with mingw
- 23. safe_ptrの実装
- 24. Objective C 2.0のようにC#でOPTIONALインターフェイスメソッドの実装を取得するには?
- 25. boost :: optional vs T *
- 26. Rails optional /:locale route
- 27. Optional ImageField(Django)
- 28. sammyjs optional parameters
- 29. libstdC++のバージョンでC++ 11準拠のstd ::文字列を使用するかどうかをテストします
- 30. std :: G ++で奇妙なことを交換する
私はC++ 14タグwikiにリンクされているMetaディスカッションごとにC++ 1yに変更しました。最終的なドラフトスタンダードがリリースされるまで[タグ:C++ 14]を使用しないと決定しました。 – chris
参照実装を使用したい人は、[ここ](https://github.com/akrzemi1/Optional/)です。 – PeterT