|
template<class... Ls, class... Rs> |
TUPLET_INLINE constexpr auto | tuplet::operator+ (type_list< Ls... >, type_list< Rs... >) |
| Convinience + operator for catenating type lists.
|
|
template<class T , class U , class = decltype(std::declval<T>() == std::declval<U>())> |
constexpr bool | tuplet::sfinae::detail::_test_eq (int) |
|
template<class T , class U > |
constexpr bool | tuplet::sfinae::detail::_test_eq (long long) |
|
template<class T , class U , class = decltype(std::declval<T>() < std::declval<U>())> |
constexpr bool | tuplet::sfinae::detail::_test_less (int) |
|
template<class T , class U > |
constexpr bool | tuplet::sfinae::detail::_test_less (long long) |
|
template<class Tup , class = typename Tup::base_list> |
constexpr bool | tuplet::sfinae::detail::_has_base_list (int) |
|
template<class Tup > |
constexpr bool | tuplet::sfinae::detail::_has_base_list (long long) |
|
template<bool... B> |
constexpr bool | tuplet::sfinae::detail::_all_true () |
|
template<class... T, class... U> |
constexpr bool | tuplet::sfinae::detail::_all_has_eq (type_list< T... >, type_list< U... >) |
|
template<class... T, class... U> |
constexpr bool | tuplet::sfinae::detail::_all_has_cmp (type_list< T... >, type_list< U... >) |
|
constexpr bool | tuplet::sfinae::detail::_all_has_eq (type_list<>, type_list<>) |
|
constexpr bool | tuplet::sfinae::detail::_all_has_cmp (type_list<>, type_list<>) |
|
template<class A , class B , class = decltype(std::declval<A>().compare(std::declval<B>()))> |
constexpr bool | tuplet::sfinae::detail::_test_m_compare (int) |
|
template<class , class > |
constexpr bool | tuplet::sfinae::detail::_test_m_compare (long long) |
|
template<class T , class U > |
TUPLET_INLINE constexpr bool | tuplet::detail::_partial_cmp (T const &a, U const &b, bool &less) |
|
template<class Tup , class... B1> |
TUPLET_INLINE constexpr bool | tuplet::detail::_equals (Tup const &t1, Tup const &t2, type_list< B1... >) |
|
template<class Tup , class... B1> |
TUPLET_INLINE constexpr bool | tuplet::detail::_less (Tup const &t1, Tup const &t2, type_list< B1... >) |
|
template<class Tup , class... B1> |
TUPLET_INLINE constexpr bool | tuplet::detail::_less_eq (Tup const &t1, Tup const &t2, type_list< B1... >) |
|
template<class Tup1 , class Tup2 , class... B1, class... B2> |
TUPLET_INLINE constexpr bool | tuplet::detail::_equals (Tup1 const &t1, Tup2 const &t2, type_list< B1... >, type_list< B2... >) |
|
template<class Tup1 , class Tup2 , class... B1, class... B2> |
TUPLET_INLINE constexpr bool | tuplet::detail::_less (Tup1 const &t1, Tup2 const &t2, type_list< B1... >, type_list< B2... >) |
|
template<class Tup1 , class Tup2 , class... B1, class... B2> |
TUPLET_INLINE constexpr bool | tuplet::detail::_less_eq (Tup1 const &t1, Tup2 const &t2, type_list< B1... >, type_list< B2... >) |
|
template<class Tup , class F , class... B> |
TUPLET_INLINE constexpr void | tuplet::detail::_for_each (Tup &&tup, F &&func, type_list< B... >) |
|
template<class Tup , class F , class... B> |
TUPLET_INLINE constexpr bool | tuplet::detail::_any (Tup &&tup, F &&func, type_list< B... >) |
|
template<class Tup , class F , class... B> |
TUPLET_INLINE constexpr bool | tuplet::detail::_all (Tup &&tup, F &&func, type_list< B... >) |
|
template<class Tup , class F , class... B> |
TUPLET_INLINE constexpr auto | tuplet::detail::_map (Tup &&tup, F &&func, type_list< B... >) -> tuple< decltype(func(TUPLET_FWD_M(Tup, B, tup, value)))... > |
|
template<class Tup , class F , class... B> |
TUPLET_INLINE constexpr decltype(auto) | tuplet::detail::_apply (Tup &&t, F &&f, type_list< B... >) |
|
template<class U , class Tup , class... B> |
TUPLET_INLINE constexpr U | tuplet::detail::_convert (Tup &&t, type_list< B... >) |
|
template<class... Ts> |
| tuplet::tuple (Ts...) -> tuple< unwrap_ref_decay_t< Ts >... > |
|
template<class A , class B > |
| tuplet::pair (A, B) -> pair< unwrap_ref_decay_t< A >, unwrap_ref_decay_t< B > > |
|
template<class Tuple > |
| tuplet::convert (Tuple &) -> convert< Tuple & > |
|
template<class Tuple > |
| tuplet::convert (Tuple const &) -> convert< Tuple const & > |
|
template<class Tuple > |
| tuplet::convert (Tuple &&) -> convert< Tuple > |
|
template<size_t I, TUPLET_WEAK_CONCEPT(indexable) Tup> |
TUPLET_INLINE constexpr decltype(auto) | tuplet::get (Tup &&tup) |
|
template<class... T> |
TUPLET_INLINE constexpr tuple< T &... > | tuplet::tie (T &... t) |
|
template<class F , TUPLET_WEAK_CONCEPT(base_list_tuple) Tup> |
TUPLET_INLINE constexpr decltype(auto) | tuplet::apply (F &&func, Tup &&tup) |
|
template<class F , class A , class B > |
TUPLET_INLINE constexpr decltype(auto) | tuplet::apply (F &&func, tuplet::pair< A, B > &pair) |
|
template<class F , class A , class B > |
TUPLET_INLINE constexpr decltype(auto) | tuplet::apply (F &&func, tuplet::pair< A, B > const &pair) |
|
template<class F , class A , class B > |
TUPLET_INLINE constexpr decltype(auto) | tuplet::apply (F &&func, tuplet::pair< A, B > &&pair) |
|
template<class... T> |
TUPLET_INLINE void | tuplet::swap (tuple< T... > &a, tuple< T... > &b) noexcept(tuple< T... >::nothrow_swappable) |
|
template<class A , class B > |
TUPLET_INLINE void | tuplet::swap (pair< A, B > &a, pair< A, B > &b) noexcept(pair< A, B >::nothrow_swappable) |
|
template<typename... Ts> |
TUPLET_INLINE constexpr auto | tuplet::make_tuple (Ts &&... args) |
|
template<typename... T> |
TUPLET_INLINE constexpr auto | tuplet::forward_as_tuple (T &&... a) noexcept |
|
template<class T , class... Q> |
TUPLET_INLINE constexpr auto | tuplet::detail::_repeat_type (type_list< Q... >) |
|
template<class... Outer> |
TUPLET_INLINE constexpr auto | tuplet::detail::_get_outer_bases (type_list< Outer... >) |
|
template<class... Outer> |
TUPLET_INLINE constexpr auto | tuplet::detail::_get_inner_bases (type_list< Outer... >) |
|
template<class T , class... Outer, class... Inner> |
TUPLET_INLINE constexpr auto | tuplet::detail::_tuple_cat (T tup, type_list< Outer... >, type_list< Inner... >) -> tuple< type_t< Inner >... > |
|
template<TUPLET_WEAK_CONCEPT(base_list_tuple)... T> |
constexpr auto | tuplet::tuple_cat (T &&... ts) |
|
template<char... D> |
constexpr size_t | tuplet::literals::detail::_size_t_from_digits () |
|
template<char... D> |
constexpr auto | tuplet::literals::operator""_tag () noexcept -> tag< detail::_size_t_from_digits< D... >()> |
|