問題タブ [boost-smart-ptr]

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 投票する
0 に答える
465 参照

c++ - boost::smart_ptr では機能するが、boost::property_tree では機能しない例外を無効にする

ブースト1.57を使用しています。広く使用されていない独自のコンパイラで例外サポートを無効にする必要があります。を使用する必要があるときはboost::smart_ptr、次の手順が魅力的でした。

  1. 次のファイルを使用して C++11 サポートを無効にしましたuser.hpp( でコンパイル-DBOOST_USER_CONFIG="<user.hpp>"):

    /li>
  2. 例外を使用しないようにブースト ライブラリに通知します。-DBOOST_NO_EXCEPTIONS -DBOOST_EXCEPTION_DISABLE

  3. 次のコンパイル行が生成されます。MyCOMPILER -DBOOST_USER_CONFIG="<user.hpp>" -DBOOST_NO_EXCEPTIONS -DBOOST_EXCEPTION_DISABLE -c Foo.cpp -o Foo.o

次に、次のコードが正常にコンパイルされました。

しかし、次のソース コードで上記の方法を使用しようとすると、コンパイルがうまくいきません。

たとえば、次のエラーが発生します。

最後に質問:

最初のケースではすべて正常に動作するのに、2 番目のケースではうまくいかないのはなぜですか? boost::property_tree例外サポートなしで適切にコンパイルするにはどうすればよいですか? これは可能ですか?

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

c++ - boost::shared_ptrで循環参照を使用するとメモリリークが発生する理由

次のコードでメモリリークが発生しましたが、それについては疑問があります。test() 楽しみで:

  1. // childern_ptr がスタックからポップされ、childern_ptr_count-- と parent_ptr_count--

  2. // parent_ptr がスタックからポップされ、childern_ptr_count-- と parent_ptr_count--

  3. // しかし、実際にはそうしなかったのはなぜですか?

誰かが私を助けてくれることを願っています、どうもありがとう。

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

c++ - 所有権移転後も自動ポインターが機能する

私の知る限り、auto_ptr は所有権の譲渡の概念に基づいて機能します。また、自動ポインタがその所有権を別の自動ポインタに移すと、それが指しているオブジェクトを参照できなくなります。ただし、これは、以下のプログラムに示すように、私が見つけたケースではありません。何か不足していますか?助けてください。

行 L1: p1 はもう所有権を持っていないので、これはどのように機能しますか?

行 L2: p1 はもう所有権を持っていないので、これはどのように機能しますか?