我想獲得一個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