73 struct overloaded<First, Rest...>
77 friend struct overloaded;
79 RANGES_NO_UNIQUE_ADDRESS
81 RANGES_NO_UNIQUE_ADDRESS
82 overloaded<Rest...> second_;
84 template<
typename Qual>
85 using _result_first = detail::_bind_front<meta::invoke<Qual, First>>;
86 template<
typename Qual>
89 template<
typename... Args>
90 using invoke =
typename overloaded<Rest...>
91 ::template _result_t<Qual, Args...>;
94 template<
typename Qual,
typename... Args>
100 _result_second<Qual>>,
104 overloaded() =
default;
105 constexpr overloaded(First first, Rest... rest)
106 : first_(
static_cast<First &&
>(first))
107 , second_{
static_cast<Rest &&
>(rest)...}
110 template(
typename... Args)(
112 constexpr _result_t<detail::_id, Args...> operator()(Args &&... args) &&
114 return invoke((First &&) first_, (Args &&) args...);
116 template(
typename... Args)(
119 constexpr _result_t<detail::_id, Args...> operator()(Args &&... args) &&
121 return invoke((overloaded<Rest...> &&) second_, (Args &&) args...);
124 template(
typename... Args)(
126 constexpr _result_t<detail::_ref, Args...> operator()(Args &&... args) &
128 return invoke(first_, (Args &&) args...);
130 template(
typename... Args)(
132 invocable<overloaded<Rest...> &, Args...>)
133 constexpr _result_t<detail::_ref, Args...> operator()(Args &&... args) &
135 return invoke(second_, (Args &&) args...);
138 template(
typename... Args)(
140 constexpr _result_t<detail::_cref, Args...> operator()(Args &&... args)
const &
142 return invoke(first_, (Args &&) args...);
144 template(
typename... Args)(
146 invocable<overloaded<Rest...>
const &, Args...>)
147 constexpr _result_t<detail::_cref, Args...> operator()(Args &&... args)
const &
149 return invoke(second_, (Args &&) args...);
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition conversion.hpp:399
typename detail::_cond< If >::template invoke< Then, Else > conditional_t
Select one type or another depending on a compile-time Boolean.
Definition meta.hpp:1148