boost绑定或返回常量的lambda函数



我可以使用boost::bind或boost lambda库来创建一个忽略其参数并始终返回常量的函子吗?

例如,具有与等效行为的函子

int returnThree( SomeType arg ) { return 3; }

当然,使用

boost::phoenix::val(3);

查看Coliru直播

#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。

来自Barry对sehe答案的评论:

#include "boost/lambda/lambda.hpp"
...
auto returnThree = boost::lambda::constant(3);

最新更新