|
template<typename... Args> |
auto | operator() (Args &&...args) noexcept(noexcept(decltype(invoke(std::declval< First &>(), static_cast< Args &&>(args)...))(invoke(std::declval< First &>(), static_cast< Args &&>(args)...)))) -> decltype(invoke(std::declval< First &>(), static_cast< Args &&>(args)...)) |
|
template<typename... Args> |
auto | operator() (Args &&...args) const noexcept(noexcept(decltype(invoke(std::declval< First const &>(), static_cast< Args &&>(args)...))(invoke(std::declval< First const &>(), static_cast< Args &&>(args)...)))) -> decltype(invoke(std::declval< First const &>(), static_cast< Args &&>(args)...)) |
|
template<typename... Args> |
auto | operator() (Args &&...args) noexcept(noexcept(decltype(std::declval< overloaded< Rest... > &>()(static_cast< Args &&>(args)...))(std::declval< overloaded< Rest... > &>()(static_cast< Args &&>(args)...)))) -> decltype(std::declval< overloaded< Rest... > &>()(static_cast< Args &&>(args)...)) |
|
template<typename... Args> |
auto | operator() (Args &&...args) const noexcept(noexcept(decltype(std::declval< overloaded< Rest... > const &>()(static_cast< Args &&>(args)...))(std::declval< overloaded< Rest... > const &>()(static_cast< Args &&>(args)...)))) -> decltype(std::declval< overloaded< Rest... > const &>()(static_cast< Args &&>(args)...)) |
|
constexpr | overloaded (First first, Rest... rest) |
|