1

boost::signals::trackableBoost.Signals を使用する場合、オブジェクト/接続の有効期間の管理を容易にするために、boost から派生させることができます( boost のドキュメントを参照してください)。

私はプロジェクトの初期段階にあり、から派生するかどうかを考えていboost::signals::trackableます

  • 将来 Boost.Signals を使用する可能性がある、私が作成するすべての新しいクラス
  • trackableまたはクラスでのみ、基本クラスの機能が必要になると確信しています

最初のアプローチの主な理由は、 からの導出を忘れないようにするためですboost::signals::trackable

また、次のような二重導出

class Foo : public Base, public boost::signals::trackable
{
};

不要になる。

一方で、メモリ リークを防止することは設計上の主要な側面であってはなりません。valgrind などのテストおよびプロファイリング ツールを使用して、メモリ リークを検出する必要があります。

成長するプロジェクトに適しているアプローチはどれですか?

4

2 に答える 2

3

Boost.Signals2に取って代わることに注意してくださいBoost.Signals。はるかに柔軟で強力な追跡メカニズムがあります。

このライブラリはマルチスレッド プログラムにスレッド セーフなソリューションを提供することを目的としていますが、シグナルの内部ミューテックスとして設定することにより、シングル スレッド環境でのロック オーバーヘッドを回避できます。boost::signals2::dummy_mutex

于 2013-06-03T07:02:06.270 に答える
1

代替としてのQt

Qt-Event システムは、プログラマーが派生することを強制するQObjectので、Qt-Events を使用するときは本当に救いの側にいます。

于 2013-08-17T16:02:19.970 に答える