問題タブ [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.

0 投票する
2 に答える
5083 参照

c++ - ブースト::オプションを確認するにはどうすればよいですかオブジェクトはrelease-buildで初期化されますか?

boost ::optionalオブジェクトの値を取得しようとすると、BOOST_ASSERTを使用して、オブジェクトが実際に初期化されていることを確認します。

しかし、初期化されていないオプションを逆参照するときに私が望むのは、例外がスローされることです-リリースビルドでこの動作を取得する方法はありますか?そうでない場合、この動作をする他の同様のライブラリはありますか?

オブジェクトを逆参照する前に毎回is_initializedメソッドを使用するのは嫌です。また、この動作を実現するために、オプションのクラスを自分のクラスでラップすることは避けたいと思います。

0 投票する
5 に答える
2986 参照

c++ - C++ boost::optional のヘルプが必要

i の値を 0 として取得しているのですが、「if」条件に入力した後、「else」部分にも「i」の値を出力したいと思います。

必要なことをしてください、変更を参照してください Arun.Dに感謝します

助けていただければ幸いです..事前に感謝します

0 投票する
3 に答える
14328 参照

c++ - boost::optional から bool への変換

このコードの最後の行がコンパイルされないようにするにはどうすればよいですか?

最後の行は に含まれる int 値を調べていませんoptが、代わりに bool への型変換としてコンパイルされており、ユーザーが意図したものではないようです。

安全な bool イディオムはここに関連しているようですか?

0 投票する
2 に答える
1248 参照

c++ - boost::optionalをboost::adapters::indirectedと一緒に使用します

私は次のコードをコンパイルしようとしています:

element_typeただし、で名前が付けられたタイプがないなど、いくつかのエラーが発生しましたboost::optional<unsigned>ただし、リファレンスページのページには、operator*()単項関数の存在が唯一の前提条件であると記載されています。それを機能させる方法はありますか?

0 投票する
3 に答える
12639 参照

c++ - boost::C++ 標準ライブラリのオプションの代替

プログラムを使用せずに動作させようとしてboostいますが、いくつかの有用なパターンの代替が見つかりません。つまり、boost::optional標準ライブラリに -likewise パターンが見つかりません。boost::optional(C++11 または他の場所)の標準的な代替手段はありますか?

0 投票する
2 に答える
29415 参照

c++ - boost::optional を初期化されていない状態に戻す方法は?

を「リセット」/「設定解除」するにはどうすればよいboost::optionalですか?

0 投票する
3 に答える
7839 参照

c++ - boost::optional を移動することは可能ですか?

boost::optionalメンバー変数を持つクラスでデフォルトの移動コンストラクターを定義しようとしています。

私のコンパイラは移動セマンティクスとデフォルトの移動コンストラクタの両方をサポートしていますが、これを機能させることができません。

Boost のソース コードを変更boost::optional せずに a を移動する方法はありますか? それとも、ブーストが移動をサポートするまで待つべきですか?

私は過去に同じ問題を抱えていboost::anyました。

0 投票する
1 に答える
8111 参照

c++ - boost :: none_t実装の理由は何ですか?

Boost.Optionalは、ダミータイプを使用して、の初期化されていないインスタンスを構築できるようにしますboost::optional<T>。このタイプはと呼ばれnone_t、インスタンスnoneは便宜上ヘッダーにすでに定義されているため、次のようなコードを記述できます。

の定義を見るとnone_t、実際には、ダミー構造体へのメンバーへのポインターに対応するtypedefであることがわかりました。

このような単純な空の構造体に対して、このような複雑なtypedefを使用する利点は何ですか?

0 投票する
0 に答える
787 参照

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 をこのプロジェクトに組み込むことで、所有権の譲渡のセマンティクスに関していくつかのバグを既に発見しています。だから私は「ああ、これは複雑すぎる、生のポインタを使うだけだ」と言いたくありません。

これはブーストの議題でサポートするものですか? タイムラインはありますか?当面の間、使用できる簡単な回避策はありますか?

0 投票する
3 に答える
3072 参照

c++ - Visual Studioでデバッグすると、boost::オプションのコンテンツが表示されない

変数を直接見ようとすると、?記号が表示されます。関数を呼び出すウォッチを作成するとis_initialized、次のエラーが発生します。

CXX0033:エラー:OMFタイプ情報のエラー

Googleを使用したBoostに関連するこのエラーに関する情報はあまり見つかりませんでした。

他の誰かがこれを経験しましたか?どこでも使用して再構築するのは面倒OutputDebugStringです...

編集:Windows XPSP3idemおよびBoost1.49.0のすべての修正プログラムでVisualStudio2010SP1を使用する

更新:この問題は発生したり発生したりしますが、一貫して発生するわけではありません。デバッガビジュアライザーは優れたソリューションです。新しいツールとして採用しました。