always¶
Header¶
#include <boost/hof/always.hpp>
Description¶
The always
function returns a function object that will always return
the value given to it, no matter what parameters are passed to the
function object. The nullary version(i.e. always(void)
) will return
void
. On compilers, that don’t support constexpr functions returning
void
, a private empty type is returned instead. This return type is
specified as BOOST_HOF_ALWAYS_VOID_RETURN
.
Synopsis¶
template<class T>
constexpr auto always(T value);
template<class T>
constexpr auto always(void);
Semantics¶
assert(always(x)(xs...) == x);
Example¶
#include <boost/hof.hpp>
#include <algorithm>
#include <cassert>
using namespace boost::hof;
int main() {
int ten = 10;
assert( always(ten)(1,2,3,4,5) == 10 );
}
// Count all
template<class Iterator, class T>
auto count(Iterator first, Iterator last)
{
return std::count_if(first, last, always(true));
}