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