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

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

c++ - shared_ptrに明示的なコンストラクターがある理由

なぜshared_ptr暗黙のコンストラクターがないのか疑問に思いました。それがそうではないという事実はここにほのめかされています:これのためにboost::shared_ptrを取得する

(理由はわかりましたが、とにかく投稿するのは楽しい質問だと思いました。)

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

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

c++ - boost::bin の結果に boost::any を渡す

私はこの関数を書く方法を理解しようとしています:

次に、機能があれば:

次のようにして呼び出すことができます。

私のcallFromAnyList関数のようなものを書くことは可能ですか? から返された型から、結果の型とパラメーターの型を調べることができますbindか? そしてany_cast<P1>(*p.begin())、などを呼び出しますか?バインド コードを理解しようとしましたが、理解するのが少し難しく、検査を念頭に置いて記述したようには見えません。

0 投票する
6 に答える
7852 参照

c++ - C++ スマート ポインターのパフォーマンス

スマート ポインター、特に boost::shared_ptr を使用すると、時間とメモリの点でベア ポインターと比較してどのくらいコストがかかりますか? ゲーム/組み込みシステムのパフォーマンスを重視する部分では、ベア ポインターを使用する方が良いですか? パフォーマンスを重視するコンポーネントには、ベア ポインターとスマート ポインターのどちらを使用することをお勧めしますか?

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

c++ - uclibc Linux でブーストを使用できますか?

uclibc ベースのシステムでブースト ライブラリを使用する C++ アプリケーションを実行した経験のある人はいますか? それは可能ですか?どの C++ 標準ライブラリを使用しますか? uclibc++ はブーストで使用できますか?

0 投票する
9 に答える
9871 参照

c++ - pImpl イディオムの std::auto_ptr または boost::shared_ptr ?

pImpl イディオムを使用する場合、a のboost:shared_ptr代わりに aを使用することをお勧めしstd::auto_ptrます。ブーストバージョンはより例外に優しいと読んだことがありますか?

[編集] std::auto_ptr<> を使用することは常に安全ですか、それとも別のブースト スマート ポインターが必要な状況がありますか?

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

c++ - ブースト ラムダ for_each / 変換パズル

誰も理由を知っていますか

与える:「0 1 2 3 4 5 6 7 8 9」

しかし

与える:「1 2 3 4 5 6 7 8 9 10」

?

0 投票する
11 に答える
71633 参照

c++ - operator() をオーバーライドする理由

Boost Signalsライブラリでは、() 演算子をオーバーロードしています。

これは C++ の規則ですか? コールバックなどに?

私はこれを同僚のコードで見たことがあります(たまたまBoostの大ファンです)。そこにあるすべてのブーストの良さの中で、これは私を混乱させるだけでした.

この過負荷の理由についての洞察はありますか?

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

c++ - boost::any_cast - 暗黙的な変換が利用できない場合にのみスローしますか?

の型にへの暗黙的な変換がないboost::any_cast<T>場合にのみ、例外をスローしたいと考えています。通常の動作は、暗黙的な変換に関係なく、型がis notの場合に例外をスローするようです。anyTanyT

例:

必要な機能を取得する簡単な方法があるかどうか、または既存の動作がそのようになっている理由を教えてください。

0 投票する
8 に答える
9168 参照

c++ - C++ シリアライゼーションのパフォーマンス

さまざまなプロセスとコンピューター間で渡される単純なデータ構造の多くのシリアル化と逆シリアル化を行う必要がある分散 C++ アプリケーションを構築しています。

複雑なクラス階層をシリアル化することには興味がありませんが、数値、文字列、データ ベクトルなどのいくつかの単純なメンバーを持つ構造体を送信することに関心があります。データ ベクトルは、多くの場合、数メガバイトの大きさになることがあります。テキスト/xml ベースの方法では遅すぎるのではないかと心配しています。文字列のエンコーディングや数値のエンディアンなどの問題により、見た目よりも複雑になる可能性があるため、自分でこれを書きたくありません。

プロトコル バッファと boost.serialize について少し調べてみました。ドキュメントによると、プロトコル バッファはパフォーマンスを重視しているようです。Boost は、この特定のプロジェクトに非常に便利なデータ形式を指定するための外部言語がないという意味で、やや軽量に見えます。

だから私の質問はこれに帰着します:私が上で説明した典型的なユースケースでブーストシリアライゼーションが速いかどうか誰か知っていますか?

また、これに適したライブラリが他にある場合は、それらについてお知らせいただければ幸いです。