A lightweight non-owning reference to a callable.
Use tl::function_ref
instead of std::function
whenever you don't need to own the callable. The most common case for this is function parameters which aren't stored anywhere:
void foo (function_ref<int(int)> func) {
std::cout << "Result is " << func(21); //42
}
foo([](int i) { return i*2; });
Full documentation available here.