function2 improved and configurable drop-in replacement header to
std::function that supports move only types, multiple overloads
and more
benefits and improvements over std::function:
* const, volatile, reference and noexcept correct (qualifiers are part
of the operator() signature)
* convertible to and from std::function as well as other callable
types
* adaptable through fu2::function_base (internal capacity,
copyable and exception guarantees)
* overloadable with an arbitrary count of signatures
(fu2::function<bool(int), bool(float)>)
* full allocator support in contrast to std::function, which doesn't
provide support anymore
* covered by many unit tests and continuous integration services
(GCC, Clang and MSVC)
* header only, just copy and include function.hpp in your project
* permissively licensed under the boost license