ビデオ フレームのセットのメモリ再利用のために、boost の object_pool クラスを使用したいと考えています。
boost::object_pool< VideoFrame > FramePool;
現在、VideoFrame クラスには 2 つのコンストラクターがあります。コンストラクターの最初のバージョンは 4 つの引数を受け取り、2 番目のバージョンは 6 つの引数/パラメーターを受け取ります。
割り当てられた「新しい」ビデオ フレームごとに、4 つまたは 6 つのパラメーター バージョンを使用して、オブジェクトのコンストラクターを呼び出したいと思います。例えば:
//VideoFrame *F = new VideoFrame(IdeckLinkOutput, &R, PixelFormat, FrameFlags);
VideoFrame *F = FramePool.construct(IdeckLinkOutput, &R, PixelFormat, FrameFlags);
これを MSVS 2005 でビルドすると、次のエラーが表示されます。
error C2660: 'boost::object_pool<T>::construct' : function does not take 4 arguments
object_pool の 'construct' メソッドに関するドキュメントによると、「ElementType には ??? に一致するコンストラクターが必要です。指定されたパラメーターの数は、pool_construct でサポートされている数を超えてはなりません」
boost のpool_constructのページを見たことがありますが、どの方向に進むべきかよくわかりません。私のマシンにあるブーストのビルドには、pool_construct.m4、pool_construct.sh、pool_construct.bat、pool_construct.inc の両方があります。自分のプロジェクト内でこれらのサンプル ファイルをどうするかという問題です。pool_construct.inc の独自のバリエーションを作成し、それを自分のプロジェクトに含めますか? ファイルを追加するにはどうすればよいですか?
ヒント/推奨事項は大歓迎です。gnu の m4 をインストールしたことに注意してください。
ゼロ欠陥。