【发布时间】:2014-10-28 15:02:07
【问题描述】:
我可以使用 boost::bind 或 boost lambda 库来创建一个忽略其参数并始终返回一个常量的函子吗?
例如具有与以下行为等效的函子:
int returnThree( SomeType arg ) { return 3; }
【问题讨论】:
标签: c++ boost boost-bind boost-lambda
我可以使用 boost::bind 或 boost lambda 库来创建一个忽略其参数并始终返回一个常量的函子吗?
例如具有与以下行为等效的函子:
int returnThree( SomeType arg ) { return 3; }
【问题讨论】:
标签: c++ boost boost-bind boost-lambda
当然,使用
boost::phoenix::val(3);
#include <boost/phoenix.hpp>
namespace p = boost::phoenix;
using namespace p::arg_names;
int main()
{
auto p = p::val(42);
return p() + p(/*ignored:*/77);
}
返回 84 作为退出代码。
【讨论】:
boost::lambda::constant 限制你到 3 个。
来自 Barry 对 sehe 回答的评论:
#include "boost/lambda/lambda.hpp"
...
auto returnThree = boost::lambda::constant(3);
【讨论】: