tap¶
Header¶
#include <boost/hof/tap.hpp>
Description¶
The tap
function invokes a function on the first argument passed in and
then returns the first argument. This is useful in a chain of pipable
function to perform operations on intermediate results. As a result, this
function is pipable
.
Synopsis¶
template<class T, class F>
pipable constexpr T tap(T&& x, const F& f);
Example¶
#include <boost/hof.hpp>
#include <cassert>
#include <iostream>
using namespace boost::hof;
struct sum_f
{
template<class T, class U>
T operator()(T x, U y) const
{
return x+y;
}
};
const pipable_adaptor<sum_f> sum = {};
int main() {
// Prints 3
int r = 1 | sum(2) | tap([](int i) { std::cout << i; }) | sum(2);
assert(r == 5);
}