問題タブ [boost-optional]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ブースト::オプションを確認するにはどうすればよいですかオブジェクトはrelease-buildで初期化されますか?
boost ::optionalオブジェクトの値を取得しようとすると、BOOST_ASSERTを使用して、オブジェクトが実際に初期化されていることを確認します。
しかし、初期化されていないオプションを逆参照するときに私が望むのは、例外がスローされることです-リリースビルドでこの動作を取得する方法はありますか?そうでない場合、この動作をする他の同様のライブラリはありますか?
オブジェクトを逆参照する前に毎回is_initializedメソッドを使用するのは嫌です。また、この動作を実現するために、オプションのクラスを自分のクラスでラップすることは避けたいと思います。
c++ - C++ boost::optional のヘルプが必要
i の値を 0 として取得しているのですが、「if」条件に入力した後、「else」部分にも「i」の値を出力したいと思います。
必要なことをしてください、変更を参照してください Arun.Dに感謝します
助けていただければ幸いです..事前に感謝します
c++ - boost::optional から bool への変換
このコードの最後の行がコンパイルされないようにするにはどうすればよいですか?
最後の行は に含まれる int 値を調べていませんopt
が、代わりに bool への型変換としてコンパイルされており、ユーザーが意図したものではないようです。
安全な bool イディオムはここに関連しているようですか?
c++ - boost::optionalをboost::adapters::indirectedと一緒に使用します
私は次のコードをコンパイルしようとしています:
element_type
ただし、で名前が付けられたタイプがないなど、いくつかのエラーが発生しましたboost::optional<unsigned>
。ただし、リファレンスページのページには、operator*()
単項関数の存在が唯一の前提条件であると記載されています。それを機能させる方法はありますか?
c++ - boost::C++ 標準ライブラリのオプションの代替
プログラムを使用せずに動作させようとしてboost
いますが、いくつかの有用なパターンの代替が見つかりません。つまり、boost::optional
標準ライブラリに -likewise パターンが見つかりません。boost::optional
(C++11 または他の場所)の標準的な代替手段はありますか?
c++ - boost::optional を初期化されていない状態に戻す方法は?
を「リセット」/「設定解除」するにはどうすればよいboost::optional
ですか?
c++ - boost::optional を移動することは可能ですか?
boost::optional
メンバー変数を持つクラスでデフォルトの移動コンストラクターを定義しようとしています。
私のコンパイラは移動セマンティクスとデフォルトの移動コンストラクタの両方をサポートしていますが、これを機能させることができません。
Boost のソース コードを変更boost::optional
せずに a を移動する方法はありますか? それとも、ブーストが移動をサポートするまで待つべきですか?
私は過去に同じ問題を抱えていboost::any
ました。
c++ - boost :: none_t実装の理由は何ですか?
Boost.Optionalは、ダミータイプを使用して、の初期化されていないインスタンスを構築できるようにしますboost::optional<T>
。このタイプはと呼ばれnone_t
、インスタンスnone
は便宜上ヘッダーにすでに定義されているため、次のようなコードを記述できます。
の定義を見るとnone_t
、実際には、ダミー構造体へのメンバーへのポインターに対応するtypedefであることがわかりました。
このような単純な空の構造体に対して、このような複雑なtypedefを使用する利点は何ですか?
c++ - ブーストの multi_array とオプションを C++11 unique_ptr と混合すると機能しない
私は G++ 4.7 でブリーディング エッジのセットアップをまとめました (ただし、現時点ではsudo apt-get boost-all-dev
、Debian Wheezy に付属のブースト 1.48 をまだ使用しています)。
私のコードは、使用する論理データ構造がunique_ptrの多次元配列になる場所に設定されています。しかしmulti_array
、unique_ptr が含まれている場合、空の単一要素の配列でさえ構築できないようです。したがって、これは機能します:
しかし、これはしません:
コンパイラからの関連する苦情は次のとおりだと思います。
/usr/include/c++/4.7/bits/stl_uninitialized.h:225: 'void std::uninitialized_fill_n(_ForwardIterator, _Size, const _Tp&) から必要 [with _ForwardIterator = std::unique_ptr*; _Size = unsigned int; _Tp = std::unique_ptr]'</p>
optional< unique_ptr<...> >
ここで提供されているパッチを適用しても、いくつかの問題があります。
https://svn.boost.org/trac/boost/ticket/1841
( 注: Is it possible to move a boost::optional? で見つかりました)
たとえば、次のようになります。
自分のしていることは合法だと感じています。実際、unique_ptr をこのプロジェクトに組み込むことで、所有権の譲渡のセマンティクスに関していくつかのバグを既に発見しています。だから私は「ああ、これは複雑すぎる、生のポインタを使うだけだ」と言いたくありません。
これはブーストの議題でサポートするものですか? タイムラインはありますか?当面の間、使用できる簡単な回避策はありますか?
c++ - Visual Studioでデバッグすると、boost::オプションのコンテンツが表示されない
変数を直接見ようとすると、?
記号が表示されます。関数を呼び出すウォッチを作成するとis_initialized
、次のエラーが発生します。
CXX0033:エラー:OMFタイプ情報のエラー
Googleを使用したBoostに関連するこのエラーに関する情報はあまり見つかりませんでした。
他の誰かがこれを経験しましたか?どこでも使用して再構築するのは面倒OutputDebugString
です...
編集:Windows XPSP3idemおよびBoost1.49.0のすべての修正プログラムでVisualStudio2010SP1を使用する
更新:この問題は発生したり発生したりしますが、一貫して発生するわけではありません。デバッガビジュアライザーは優れたソリューションです。新しいツールとして採用しました。