問題タブ [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 投票する
1 に答える
438 参照

c++11 - 移動不可およびコピー不可のクラス メンバーを初期化する方法 - boost::optional

私は移動不可能でコピー不可能なタイプを持っています:

この方法でオプションのブーストを構築できます。

boost::optional<A>クラスメンバーである初期化も必要です。これが私の解決策です:

boost::optional<A>クラスメンバーだけを持って、どうにかして初期化することは可能ですか?

編集(明確化)クラスデータメンバーが 欲しいのですがboost::optional<A> op_、初期化する方法がわかりません。

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

c++ - boost::オプションの奇妙な未初期化の問題

ときどき gcc は、boost::optional での作業について警告を出すことがありますが、これは誤検知であると想定しています (ここで説明されているようにhttps://github.com/boostorg/optional/issues/72 )。

しかし、valgrind は実行時に同じ問題を報告するようになりました。

valgrind と gcc は問題を次のように報告します。

その可能性Foo::free_memは、ユニット化されたメモリに使用される可能性があります。

Foo::free_mem gcc 警告 (9.1.0)で printf を有効にすると消え、valgrind (3.15) は問題を報告しません。

私はそのような方法でgccで例をコンパイルします:

それでは、私のコード、boost::optional、または valgrind と g++ の同時エラーで何が起こっているのでしょうか?

間違ったコードを生成する g++ のこのバグで、valgrind もエラーについて文句を言うのでしょうか?