|
template<concepts::Expected T, typename Promise> |
constexpr auto | tag_invoke (types::Tag< execution::as_awaitable >, T &&value, Promise &promise) -> decltype(auto) |
|
template<typename T, typename... U> |
| Array (T, U...) -> Array< T, 1+sizeof...(U)> |
|
template<typename T, types::size_t size>
requires (concepts::CopyConstructible<T> && !concepts::LanguageArray<T>) |
constexpr auto | to_array (T(&array)[size]) |
|
template<typename T, types::size_t size>
requires (concepts::MoveConstructible<T> && !concepts::LanguageArray<T>) |
constexpr auto | to_array (T(&&array)[size]) -> Array< meta::RemoveCV< T >, size > |
|
template<typename T, typename U> |
constexpr auto | operator== (StatusCode< T > const &a, StatusCode< U > const &b) -> bool |
|
template<typename T, typename U>
requires (concepts::ConvertibleToAnyStatusCode<U const&>) |
constexpr auto | operator== (StatusCode< T > const &a, U const &b) -> bool |
|
template<typename T, typename U>
requires (concepts::ConvertibleToAnyStatusCode<T const&>) |
constexpr auto | operator== (T const &a, U const &b) -> bool |
|
template<typename T> |
| Expected (T &&) -> Expected< meta::UnwrapRefDecay< T >, void > |
|
template<typename E> |
| Unexpected (E &&) -> Unexpected< meta::UnwrapRefDecay< E > > |
|
template<typename... Integrals>
requires (concepts::ConvertibleTo<Integrals, size_t> && ...) |
| Extents (Integrals...) -> Extents< size_t,(Integrals {}, dynamic_extent)... > |
|
template<concepts::LanguageArray CArray>
requires (meta::ArrayRank<CArray> == 1) |
| MDSpan (CArray &) -> MDSpan< meta::RemoveAllExtents< CArray >, Extents< size_t, meta::Extent< CArray, 0 > > > |
|
template<typename Pointer>
requires (concepts::Pointer<meta::RemoveReference<Pointer>>) |
| MDSpan (Pointer &&) -> MDSpan< meta::RemovePointer< meta::RemoveReference< Pointer > >, Extents< size_t > > |
|
template<typename ElementType, typename... integrals>
requires (sizeof...(integrals) > 0 && (concepts::ConvertibleTo<integrals, size_t> && ...)) |
| MDSpan (ElementType *, integrals...) -> MDSpan< ElementType, Dextents< size_t, sizeof...(integrals)> > |
|
template<typename ElementType, typename OtherSizeType, size_t N> |
| MDSpan (ElementType *, Span< OtherSizeType, N >) -> MDSpan< ElementType, Dextents< size_t, N > > |
|
template<typename ElementType, typename OtherSizeType, size_t N> |
| MDSpan (ElementType *, Array< OtherSizeType, N > const &) -> MDSpan< ElementType, Dextents< size_t, N > > |
|
template<typename ElementType, typename SizeType, size_t... extents> |
| MDSpan (ElementType *, Extents< SizeType, extents... > const &) -> MDSpan< ElementType, Extents< SizeType, extents... > > |
|
template<class ElementType, class MappingType> |
| MDSpan (ElementType *, MappingType const &) -> MDSpan< ElementType, typename MappingType::ExtentsType, typename MappingType::LayoutType > |
|
template<class MappingType, class AccessorType> |
| MDSpan (typename AccessorType::DataHandle const &, MappingType const &, AccessorType const &) -> MDSpan< typename AccessorType::ElementType, typename MappingType::ExtentsType, typename MappingType::LayoutType, AccessorType > |
|
template<typename T> |
constexpr auto | make_optional (T &&value) |
|
template<typename T, typename... Args> |
constexpr auto | make_optional (Args &&... args) |
|
template<typename T, concepts::EqualityComparableWith< T > U> |
constexpr auto | operator== (Optional< T > const &a, Optional< U > const &b) -> bool |
|
template<typename T> |
constexpr auto | operator== (Optional< T > const &a, NullOpt) -> bool |
|
template<typename T, typename U>
requires ((meta::OptionalRank<T> >= meta::OptionalRank<U>) && concepts::EqualityComparableWith<T, U>) |
constexpr auto | operator== (Optional< T > const &a, U const &b) -> bool |
|
template<typename T, concepts::ThreeWayComparableWith< T > U> |
constexpr auto | operator<=> (Optional< T > const &a, Optional< U > const &b) -> meta::CompareThreeWayResult< T, U > |
|
template<typename T> |
constexpr auto | operator<=> (Optional< T > const &a, NullOpt) -> types::strong_ordering |
|
template<typename T, typename U>
requires ((meta::OptionalRank<T> >= meta::OptionalRank<U>) && concepts::ThreeWayComparableWith<T, U>) |
constexpr auto | operator<=> (Optional< T > const &a, U const &b) -> meta::CompareThreeWayResult< T, U > |
|
template<class T> |
| Optional (T) -> Optional< T > |
|
template<size_t count, typename T> |
constexpr auto | fixed_span (T *value) -> Span< T, count > |
|
template<typename Iter, typename SentOrSize> |
| Span (Iter, SentOrSize) -> Span< meta::RemoveReference< meta::IteratorReference< Iter > > > |
|
template<typename Con> |
| Span (Con &&) -> Span< meta::RemoveReference< meta::ContainerReference< Con > > > |
|
template<typename T, types::size_t size> |
| Span (T(&)[size]) -> Span< T, size > |
|
template<typename T, types::size_t size> |
| Span (vocab::Array< T, size > &) -> Span< T, size > |
|
template<typename T, types::size_t size> |
| Span (vocab::Array< T, size > const &) -> Span< T const, size > |
|
template<typename F, concepts::TupleLike Tup> |
constexpr auto | apply (F &&f, Tup &&tuple) -> decltype(detail::apply_impl(meta::MakeIndexSequence< meta::TupleSize< Tup > > {}, util::forward< F >(f), util::forward< Tup >(tuple))) |
|
template<typename... Args> |
constexpr auto | forward_as_tuple (Args &&... args) -> Tuple< Args &&... > |
|
template<typename... Args> |
constexpr auto | make_decayed_tuple (Args &&... args) |
|
template<typename... Args> |
constexpr auto | make_tuple (Args &&... args) |
|
template<typename... Types> |
| Tuple (Types...) -> Tuple< Types... > |
|
template<concepts::TupleLike... Tups> |
constexpr auto | tuple_cat (Tups &&... tuples) |
|
template<typename F, concepts::TupleLike Tup>
requires (detail::TupleForEachValid<F, Tup, meta::MakeIndexSequence<meta::TupleSize<Tup>>>::value) |
constexpr void | tuple_for_each (F &&function, Tup &&tuple) |
|
template<typename F, concepts::TupleLike Tup>
requires (detail::TupleTransformValid<F, Tup, meta::MakeIndexSequence<meta::TupleSize<Tup>>>::value) |
constexpr auto | tuple_transform (F &&function, Tup &&tuple) |
|
template<size_t index, concepts::VariantLike Var, typename Res = meta::VariantValue<Var, index>> |
constexpr auto | get_if (Var &&variant) -> Optional< meta::RemoveRValueReference< Res > > |
|
template<typename T, concepts::VariantLike Var, typename List = meta::VariantTypes<Var>, auto index = meta::Lookup<T, List>, typename Res = meta::VariantValue<Var, index>>
requires (meta::UniqueType<T, List>) |
constexpr auto | get_if (Var &&variant) -> Optional< meta::RemoveRValueReference< Res > > |
|
template<typename R, typename Vis, concepts::VariantLike... Vars, typename Indices = meta::CartesianProduct<meta::AsList<meta::MakeIndexSequence<meta::VariantSize<Vars>>>...>>
requires (requires { []<concepts::TypeList... Idx>(meta::List<Idx...>) { return Array { (&detail::VisitHelper<Idx, R, Vis, Vars...>::call)... }; }(Indices {}); }) |
constexpr auto | visit (Vis &&visitor, Vars &&... variants) -> R |
|
template<typename Vis, concepts::VariantLike... Vars, typename R = decltype(function::invoke(util::declval<Vis>(), util::get<0>(util::declval<Vars>())...))> |
constexpr auto | visit (Vis &&visitor, Vars &&... variants) -> decltype(auto) requires( |
|