Range-v3 Range algorithms, views, and actions for the Standard Library |

Instances and minimal complete definitions | Public Member Functions | List of all members
ranges::overloaded< First, Rest... > Struct Template Reference
Functional

## 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...>`