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

Public Member Functions

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

Member Function Documentation

◆ operator()() [1/6]

template<typename First , typename... Rest>
template<typename... Args>
constexpr _result_t<detail::_ref, Args...> ranges::overloaded< First, Rest... >::operator() ( Args &&...  args) &
constexpr
Precondition
requires invocable<First &, Args...>

◆ operator()() [2/6]

template<typename First , typename... Rest>
template<typename... Args>
constexpr _result_t<detail::_ref, Args...> ranges::overloaded< First, Rest... >::operator() ( Args &&...  args) &
constexpr
Precondition
requires (!invocable<First &, Args...>) && invocable<overloaded<Rest...> &, Args...>

◆ operator()() [3/6]

template<typename First , typename... Rest>
template<typename... Args>
constexpr _result_t<detail::_id, Args...> ranges::overloaded< First, Rest... >::operator() ( Args &&...  args) &&
constexpr
Precondition
requires invocable<First, Args...>

◆ operator()() [4/6]

template<typename First , typename... Rest>
template<typename... Args>
constexpr _result_t<detail::_id, Args...> ranges::overloaded< First, Rest... >::operator() ( Args &&...  args) &&
constexpr
Precondition
requires (!invocable<First, Args...>) && invocable<overloaded<Rest...>, Args...>

◆ operator()() [5/6]

template<typename First , typename... Rest>
template<typename... Args>
constexpr _result_t<detail::_cref, Args...> ranges::overloaded< First, Rest... >::operator() ( Args &&...  args) const &
constexpr
Precondition
requires invocable<First const &, Args...>

◆ operator()() [6/6]

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