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