問題タブ [boost]
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++ - shared_ptrに明示的なコンストラクターがある理由
なぜshared_ptr
暗黙のコンストラクターがないのか疑問に思いました。それがそうではないという事実はここにほのめかされています:これのためにboost::shared_ptrを取得する
(理由はわかりましたが、とにかく投稿するのは楽しい質問だと思いました。)
c++ - DLL で使用すると Boost Spirit がクラッシュする
アプリケーションで Boost.Spirit および Boost.Thread ライブラリを使用しているときにクラッシュが発生しました。これは、メイン スレッドからのプロセスの有効期間中に Spirit パーサーを使用した場合にのみ発生します。
クラッシュは終了時に発生し、Spirit パーサーによって割り当てられたスレッド固有のストレージのクリーンアップに関連しているようです。スレッド固有のメモリが既にアンロードされている DLL 内に割り当てられているため、DLL がアンロードされる順序が原因でクラッシュしている可能性があります。ただし、Boost.Thread DLL は、アプリケーション自体が終了するまでアンロードされません。
プロセス デタッチ通知を受け取ったときに、Spirit にスレッド固有のストレージ (たとえば、dll-main 内) を強制的に消去させる方法はありますか?
解決策/ヒントをいただければ幸いです。
PS!私のプラットフォームと設定:
- ビジュアル スタジオ 2005
- BOOST_ALL_DYN_LINK
- BOOST_SPIRIT_THREADSAFE
c++ - boost::bin の結果に boost::any を渡す
私はこの関数を書く方法を理解しようとしています:
次に、機能があれば:
次のようにして呼び出すことができます。
私のcallFromAnyList
関数のようなものを書くことは可能ですか? から返された型から、結果の型とパラメーターの型を調べることができますbind
か? そしてany_cast<P1>(*p.begin())
、などを呼び出しますか?バインド コードを理解しようとしましたが、理解するのが少し難しく、検査を念頭に置いて記述したようには見えません。
c++ - C++ スマート ポインターのパフォーマンス
スマート ポインター、特に boost::shared_ptr を使用すると、時間とメモリの点でベア ポインターと比較してどのくらいコストがかかりますか? ゲーム/組み込みシステムのパフォーマンスを重視する部分では、ベア ポインターを使用する方が良いですか? パフォーマンスを重視するコンポーネントには、ベア ポインターとスマート ポインターのどちらを使用することをお勧めしますか?
c++ - uclibc Linux でブーストを使用できますか?
uclibc ベースのシステムでブースト ライブラリを使用する C++ アプリケーションを実行した経験のある人はいますか? それは可能ですか?どの C++ 標準ライブラリを使用しますか? uclibc++ はブーストで使用できますか?
c++ - pImpl イディオムの std::auto_ptr または boost::shared_ptr ?
pImpl イディオムを使用する場合、a のboost:shared_ptr
代わりに aを使用することをお勧めしstd::auto_ptr
ます。ブーストバージョンはより例外に優しいと読んだことがありますか?
[編集] std::auto_ptr<> を使用することは常に安全ですか、それとも別のブースト スマート ポインターが必要な状況がありますか?
c++ - ブースト ラムダ for_each / 変換パズル
誰も理由を知っていますか
与える:「0 1 2 3 4 5 6 7 8 9」
しかし
与える:「1 2 3 4 5 6 7 8 9 10」
?
c++ - operator() をオーバーライドする理由
Boost Signalsライブラリでは、() 演算子をオーバーロードしています。
これは C++ の規則ですか? コールバックなどに?
私はこれを同僚のコードで見たことがあります(たまたまBoostの大ファンです)。そこにあるすべてのブーストの良さの中で、これは私を混乱させるだけでした.
この過負荷の理由についての洞察はありますか?
c++ - boost::any_cast - 暗黙的な変換が利用できない場合にのみスローしますか?
の型にへの暗黙的な変換がないboost::any_cast<T>
場合にのみ、例外をスローしたいと考えています。通常の動作は、暗黙的な変換に関係なく、型がis notの場合に例外をスローするようです。any
T
any
T
例:
必要な機能を取得する簡単な方法があるかどうか、または既存の動作がそのようになっている理由を教えてください。
c++ - C++ シリアライゼーションのパフォーマンス
さまざまなプロセスとコンピューター間で渡される単純なデータ構造の多くのシリアル化と逆シリアル化を行う必要がある分散 C++ アプリケーションを構築しています。
複雑なクラス階層をシリアル化することには興味がありませんが、数値、文字列、データ ベクトルなどのいくつかの単純なメンバーを持つ構造体を送信することに関心があります。データ ベクトルは、多くの場合、数メガバイトの大きさになることがあります。テキスト/xml ベースの方法では遅すぎるのではないかと心配しています。文字列のエンコーディングや数値のエンディアンなどの問題により、見た目よりも複雑になる可能性があるため、自分でこれを書きたくありません。
プロトコル バッファと boost.serialize について少し調べてみました。ドキュメントによると、プロトコル バッファはパフォーマンスを重視しているようです。Boost は、この特定のプロジェクトに非常に便利なデータ形式を指定するための外部言語がないという意味で、やや軽量に見えます。
だから私の質問はこれに帰着します:私が上で説明した典型的なユースケースでブーストシリアライゼーションが速いかどうか誰か知っていますか?
また、これに適したライブラリが他にある場合は、それらについてお知らせいただければ幸いです。