我热衷于使用 boost 的 object_pool 类对一组视频帧进行内存重用。
boost::object_pool< VideoFrame > FramePool;
现在,VideoFrame 类有两个构造函数。构造函数的第一个版本需要 4 个参数,而第二个版本需要 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支持的数量”
我已经看到了pool_construct的 boost 页面,但我不太确定我需要采取的方向。我在我的机器上构建的 boost 有 pool_construct.m4、pool_construct.sh、pool_construct.bat、pool_construct.inc。这是一个问题,我如何在我自己的项目中处理这些示例文件?我会创建自己的 pool_construct.inc 变体并将其包含在我自己的项目中吗?我将如何添加文件?
任何提示/建议将不胜感激。请注意,我已经安装了 gnu 的 m4。
零缺陷。