Boost Bind или лямбда-функтор, который возвращает константу

Могу ли я использовать boost::bind или библиотеку boost lambda для создания функтора, который игнорирует свои аргументы и всегда возвращает константу?

например, функтор с эквивалентным поведением:

int returnThree( SomeType arg ) { return 3; }

2 ответа

Решение

Из комментария Барри к ответу Сихе:

#include "boost/lambda/lambda.hpp"

...

auto returnThree = boost::lambda::constant(3);

Конечно, используйте

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 в качестве кода выхода.

Другие вопросы по тегам