rem: inline bool operator()() const { return iterations_performed<iterations_desired; }
add: void operator()(T2 const &val) const { ref += val; }
context:         inline bool operator()() const        {            return iterations_performed<iterations_desired;        }