問題タブ [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++11 - 移動不可およびコピー不可のクラス メンバーを初期化する方法 - boost::optional
私は移動不可能でコピー不可能なタイプを持っています:
この方法でオプションのブーストを構築できます。
boost::optional<A>
クラスメンバーである初期化も必要です。これが私の解決策です:
boost::optional<A>
クラスメンバーだけを持って、どうにかして初期化することは可能ですか?
編集(明確化)クラスデータメンバーが
欲しいのですがboost::optional<A> op_
、初期化する方法がわかりません。
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 もエラーについて文句を言うのでしょうか?