...尽管库提供的constructor<>
仿函数适配器定义了sig<>
模板?
struct Porc
{
Porc(int x) {}
};
boost::bind
(
boost::lambda::constructor<Porc>(),
_1
)(1);
错误:'struct boost :: lambda :: constructor'
中没有名为'result_type'的类型我要做的是创建一个带有int并创建&amp;的仿函数。使用该int返回Porc对象。 注意:如果我明确指定了仿函数的返回类型(Porc),如下所示,它可以工作:
boost::bind<Porc>
(
boost::lambda::constructor<Porc>(),
_1
)(1);
我对lambda表达式相对较新,但我认为/希望我掌握了基础知识。它说here in the documentation 通常,BLL不能推断出任意函数对象的返回类型。但是,有两种方法可以为特定的函数对象类提供BLL此功能。 [...] result_type typedef和[...] sig模板。由于提供了constructor<>
库,当然他们声明了sig<>
模板。