我想获得一个boost :: function到一个new_ptr(带参数),它可以存储在一个散列表中供以后使用。一种用于模块使用的构造函数的ID注册器。下面是简单的问题:从boost :: lambda ::获取boost :: function :: new_ptr绑定参数
#include <boost/lambda/bind.hpp>
#include <boost/lambda/construct.hpp>
#include <boost/function.hpp>
using namespace boost::lambda;
struct TestObject
{
TestObject(int p){}
};
void doStuff()
{
boost::function<TestObject*(int)> tf1 = bind(new_ptr<TestObject>(), _1);
}
的结合作品本身,但对于提振语法::功能必须关闭,因为它给了我:
error C2664: 'TestObject::TestObject(int)' : cannot convert parameter 1 from 'boost::lambda::lambda_functor<T>' to 'int' BOOST\1.57.0\boost\lambda\construct.hpp 146 1
我已经做过没有参数的构造函数(很好用)。我无法弄清楚缺少什么,或者如果我想做一些不可能的事情。
使用boost v1.57.0和msvc 2012(v110)进行编译。
无法重播,您包含哪些文件?请提供[mcve]。 – Barry
编辑,我的坏。 – jinc
仍按我原样编译。 – Barry