Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::overloaded< First, Rest... > Struct Template Reference

Public Member Functions

template<typename... Args>
requires invocable<First &, Args...>
constexpr _result_t< detail::_ref, Args... > operator() (Args &&... args) &
 
template<typename... Args>
requires (!invocable<First &, Args...>) && invocable<overloaded<Rest...> &, Args...>
constexpr _result_t< detail::_ref, Args... > operator() (Args &&... args) &
 
template<typename... Args>
requires invocable<First, Args...>
constexpr _result_t< detail::_id, Args... > operator() (Args &&... args) &&
 
template<typename... Args>
requires (!invocable<First, Args...>) && invocable<overloaded<Rest...>, Args...>
constexpr _result_t< detail::_id, Args... > operator() (Args &&... args) &&
 
template<typename... Args>
requires invocable<First const &, Args...>
constexpr _result_t< detail::_cref, Args... > operator() (Args &&... args) const &
 
template<typename... Args>
requires (!invocable<First const &, Args...>) && invocable<overloaded<Rest...> const &, Args...>
constexpr _result_t< detail::_cref, Args... > operator() (Args &&... args) const &
 
constexpr overloaded (First first, Rest... rest)