5#pragma GCC diagnostic push
6#pragma GCC diagnostic ignored "-Wfloat-equal"
18template <
typename R,
typename... Args>
class function<R(Args...)> {
29 R
invoke(Args... args)
override {
return f(args...); }
43 R (C::*
mfp)(Args...)
const;
90 function(R (C::*mf)(Args...)
const,
const C *obj)
96 explicit operator bool()
const {
return callable_ !=
nullptr; }
109#pragma GCC diagnostic pop
function(function &&o) noexcept
function(R(C::*mf)(Args...) const, const C *obj)
bool operator!=(const function &o) const
bool operator==(const function &o) const
function(const function &o)
R operator()(Args... args) const
Ptr< CallableBase > callable_
function(R(C::*mf)(Args...), C *obj)
function & operator=(const function &o)
Ptr< T > NewPtr(Args... args)
typename enable_if< Condition, T >::type enable_if_t
Implements a simple red square effect for 2D LED grids.
R invoke(Args... args) override
virtual R invoke(Args... args)=0
virtual ~CallableBase()=default
R invoke(Args... args) override
R(C::* mfp)(Args...) const
ConstMemCallable(const C *o, R(C::*m)(Args...) const)
MemCallable(C *o, R(C::*m)(Args...))
R invoke(Args... args) override