3

stackoverflow と google で予備検索を行いましたが、これに関する特定の手がかりが見つからなかったので、ここで質問します。

カスタム アロケータで boost::function を使用した経験のある人はいますか?

バインドから生成された関数を使用しているため、必要です。特定のサイズ (バインドするパラメーターによって異なります) の後、boost::function はヒープへの割り当てを開始します。

boost/pool_alloc を使用する必要があります。boost::fast_pool_allocator<>またはboost::pool_allocator<>具体的に。受信関数の署名は単純ですが、function<void()>バインドするすべての可能なパラメーターを使用して、さまざまなバインディング サイトからこの関数を生成することができます...

それでは、pool_alloc にどの署名を書き込むべきかをどのように知ることができますか? 例えば:

function<void()> f_with_alloc(bind(...), pool_allocator<????>() );

そこに何を書く?boost.function のドキュメントでは明確ではありません。

ええと、一部のテンプレート コードは、stackoverflow のエディターではうまく機能しません...そして、エディターで再度編集することはできません。:(

4

2 に答える 2

2

私が言えることから、それは問題ではありません。とにかく、クラスはアロケーターを必要な型に内部的に再バインドします。

于 2013-05-28T13:10:18.450 に答える