私は、後で使うためにハッシュテーブルに格納できるnew_ptr(パラメータ付き)にboost ::関数を取得しようとしています。モジュールのコンストラクタに使用するIDのレジストラの一種。以下は、単純化の問題である:boost :: lambda :: bind from new_ptr with parameters with
#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
私は前にこれをやりましたパラメータを持たないコンストラクタ(素晴らしい)。私は何が欠けているか、私が不可能な何かをしようとしているかどうかを正確に把握することはできません。
ブーストv1.57.0およびmsvc 2012(v110)でコンパイルします。
あなたはどのファイルを含んでいますか? [mcve]を入力してください。 – Barry
編集されました。 – jinc
まだそのまま私のためにコンパイルします。 – Barry