我可以使用boost :: bind或boost lambda库来创建一个忽略其参数并始终返回常量的仿函数吗?
e.g。一个具有相同行为的仿函数:
int returnThree( SomeType arg ) { return 3; }
答案 0 :(得分:2)
当然,请使用
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
作为exitcode。
答案 1 :(得分:1)
来自Barry对sehe的答案的评论:
#include "boost/lambda/lambda.hpp"
...
auto returnThree = boost::lambda::constant(3);