私のプログラムはboost
の使用なしで動作させようとしていますが、便利なパターンの代替を見つけることはできません。つまり、標準ライブラリにboost::optional
-likewiseパターンが見つかりません。 boost::optional
(C++ 11または他のどこか)の標準的な代替手段がありますか?C++標準ライブラリのboost :: optional alternative
答えて
短い回答:いいえ
長い答え:自分のロールをブースト仕様に従ってください。ドキュメントはかなり網羅的で、コードはそれほど複雑ではありませんが、それでもなお平均的なC++スキルが必要です。
この回答を更新するには、C++ 14は残念ながらstd::optional
と同梱されていません。現在の提案(改訂5)はN3793であり、別の技術仕様として出荷される予定であるか、C++の一部となる予定です17。
現在、a proposal for C++14(またはC++ 17)があります。答えは(おそらく)まだありません。
明らかにC++ 14を技術的仕様(http://en.cppreference.com/w/cpp/utility/optional参照):( – Nova
C++委員会で「投票する」というのは実際には「投票する」という意味ですか? –
pmr explainedのように、現時点では不可能であり、C++ 17がリリースされるまではありません。
しかし、このsingle header libraryをgithubに追加すると、boostまたはstdの代わりにオプションとしてドロップすることができます。依存関係はありません(C++ 11/C++ 14対応コンパイラを除く)。
- 1. mingW内の標準Cライブラリ
- 2. Cの成熟標準ライブラリ
- 3. Visual C++標準ライブラリのキーワード
- 4. C標準ライブラリとシステムコール
- 5. 標準ライブラリSTL in C++
- 6. Calltree for C++標準ライブラリ
- 7. C標準ライブラリとグリーンヒルズコンパイラ
- 8. 異なるC++標準とリンクするC++標準ライブラリ
- 9. boost :: optional vs T *
- 10. 標準ライブラリと組み合わせた `boost :: phoenix :: static_cast_`の使用
- 11. Visual C++標準ライブラリの警告
- 12. fgetsのC標準ライブラリ関数
- 13. C標準ライブラリの完全なオンラインリファレンス?
- 14. Cの標準データ構造ライブラリ?
- 15. C標準ライブラリの内部作業
- 16. はC++ファイル内の標準ライブラリ
- 17. python標準ライブラリ
- 18. C標準ライブラリとC POSIXライブラリの相違点
- 19. .NET標準ライブラリと.NET標準
- 20. boost :: any_castとstd :: optionalの
- 21. 標準ライブラリ `FILE`タイプ
- 22. boostと標準のunordered_setの相違
- 23. レガシーC++ IOライブラリと標準化IOライブラリの違い
- 24. サポートライブラリとAndroidの標準ライブラリ
- 25. 標準ライブラリのLuaBindバインディング?
- 26. SBCL標準ライブラリのマニュアル?
- 27. Pythonの標準ライブラリでオーバーライドメソッド
- 28. Python標準ライブラリのドキュメント例
- 29. C++アプリケーションでのCライブラリの標準出力の使用
- 30. マイクロソフトvs. GNU C/C++標準ライブラリの実装
C++ 0x == C++ 11、質問から削除されました。 :) – Xeo
'boost :: optional'の代わりに安価で安全でないものとしてヌル可能なポインタを使うことができます。または、おそらく 'std :: unique_ptr'を返します。値0(null_ptr、NULL)は初期化されていないオプション型と解釈されます。欠点に加えて、良いことは何も実装する必要はないということです。ただ抽象を覚えておいてください。これに関するヒントは、ブーストマニュアル自体に記載されています。http://www.boost.org/doc/libs/1_53_0/libs/optional/doc/html/boost_optional/development.html#boost_optional.development.the_interface "結果として場合によってはをT *で置き換えることができますが、必ずしもそうではありません。「 –
alfC