#ifndef OVERLOAD_HPP #define OVERLOAD_HPP template<typename... Callable> struct overload : Callable... { overload( Callable &&...c ) : Callable{std::move(c)}... {} using Callable::operator()...; }; #endif