template struct overloaded : Ts... { using Ts::operator()...; }; template overloaded(Ts...) -> overloaded;