tuple.h File Reference

Classes

class   ForEach
class   TupleStorageLayout< INDEX, PRE_OFFSET, PRE_MAX_ALIGN, SZ_ALIGN >
class   TupleStorageLayout< INDEX, PRE_OFFSET, PRE_MAX_ALIGN >
class   TupleStorageLayout< INDEX, PRE_OFFSET, PRE_MAX_ALIGN, SZ_ALIGN, REST... >
class   TupleStorageBase< DEFAULT_CONSTRUCTIBLE, TRIVIALLY_DESTRUCTIBLE, T >
class   TupleStorageBase< false, true, T... >
class   TupleStorageBase< true, false, T... >
class   TupleStorageBase< true, true, T... >
struct   TupleRefWrapper< T >
struct   TupleRefWrapper< T & >
class   TupleStorage< T >
class   TupleStorage< T1 >
class   TupleStorage< T1, T2 >
class   TupleStorage< T1, T2, T3 >
class   TupleStorage< T1, T2, T3, T4 >
class   TupleStorage< T1, T2, T3, T4, T5 >
class   TupleStorage< T1, UnitType >
class   Tuple< T >
struct   FindUniqueTupleIndex< SEARCHTYPE, TUPLETYPE >
struct   FindUniqueTupleIndex< SEARCHTYPE, Tuple< TYPES... > >
class   Tuple< T >
class   Tuple<>
struct   PairSelector< T1, T2, DECAYED_T2 >
struct   PairSelector< T1, T2, UnitType >
struct   HomogenousTupleTypeHelper< N, T, TYPES >
struct   HomogenousTupleTypeHelper< 0, T, TYPES ... >
struct   TupleRecHelper< I, N >
struct   TupleRecHelper< I, 1 >
struct   TupleRecHelper< I, 0 >
class   IgnoredPlaceholder
struct   TupleElementEquals
struct   TupleElementEquals::ByIndex< INDEX >
struct   TupleElementEquals::ByType< ELEMENTTYPE >
struct   TupleElementLessThan
struct   TupleElementLessThan::ByIndex< INDEX >
struct   TupleElementLessThan::ByType< ELEMENTTYPE >
struct   TupleElementCompare
struct   TupleElementCompare::ByIndex< INDEX >
struct   TupleElementCompare::ByType< ELEMENTTYPE >

Namespaces

  maxon
  maxon::details

Typedefs

template<typename T1 , typename T2 >
using  Pair = typename maxon::details::PairSelector < T1, T2 >::type
template<Int N, typename T >
using  HomogenousTupleType = typename maxon::details::HomogenousTupleTypeHelper < N, T >::type

函数

template<typename T >
constexpr UInt64   GetSizeAndAlignment ()
template<typename X >
Bool   TupleDestructMember (Generic &x, SFINAEHelper< X > *)
template<typename X >
Bool   TupleDestructMember (Generic &x, SFINAEHelper< X & > *)
template<typename TUPLE , size_t... I>
void  TupleDestruct ( TUPLE &tuple, std::index_sequence< I... > *)
ResultOk< void >  TupleCopyFrom ()
template<typename T1 , typename... T>
Result< void >  TupleCopyFrom (const T1 &a1, const T &... rest)
const String TupleToString (const FormatStatement *fs)
template<typename T1 , typename... T>
SFINAEHelper< String , T1 >::type  TupleToString (const FormatStatement *fs, const T1 &a1, const T &... rest)
Bool   TupleEquals ()
template<typename T1 , typename... T>
Bool   TupleEquals (const T1 &a1, const T &... rest)
Bool   TupleLessThan ()
template<typename T1 , typename... T>
Bool   TupleLessThan (const T1 &a1, const T &... rest)
template<typename T1 , typename T2 >
TupleStorage< T1 &, const T2 & >  TuplePair (T1 &t1, const T2 &t2)
template<Int I, typename ... TYPES>
auto  TupleGet (const Tuple< TYPES ... > &tup) -> const typename ParameterPack< TYPES... >::template At< I >::type &
template<Int I, typename ... TYPES>
auto  TupleGet (Tuple< TYPES ... > &tup) -> typename ParameterPack< TYPES... >::template At< I >::type &
template<Int I, typename ... TYPES>
auto  TupleGet (Tuple< TYPES ... > &&tup) -> typename ParameterPack< TYPES... >::template At< I >::type &&
template<typename TUP , typename F , size_t ... INDICES>
auto  ExpandSeqHelperConst (const TUP &tup, F &&func, std::index_sequence< INDICES ... >) -> decltype(func(TupleGet< INDICES >(tup) ...))
template<typename TUP , typename F , size_t ... INDICES>
auto  ExpandSeqHelper (TUP &&tup, F &&func, std::index_sequence< INDICES ... >) -> decltype(func(TupleGet< INDICES >(std::forward< TUP >(tup)) ...))
template<typename F , typename ... TYPES>
auto  TupleExpand (const Tuple< TYPES ... > &tup, F &&func) -> decltype( maxon::details::ExpandSeqHelperConst (tup, std::forward< F >(func), std::make_index_sequence< sizeof...(TYPES)>()))
template<typename F , typename ... TYPES>
auto  TupleExpand (Tuple< TYPES ... > &tup, F &&func) -> decltype( maxon::details::ExpandSeqHelper (tup, std::forward< F >(func), std::make_index_sequence< sizeof...(TYPES)>()))
template<typename F , typename ... TYPES>
auto  TupleExpand (Tuple< TYPES ... > &&tup, F &&func) -> decltype( maxon::details::ExpandSeqHelper (std::move(tup), std::forward< F >(func), std::make_index_sequence< sizeof...(TYPES)>()))
template<typename ... TYPES>
auto  ToTuple (TYPES &&... args) -> Tuple< typename std::decay< TYPES >::type ... >
template<typename... TYPES>
auto  Tie (TYPES &... args) -> Tuple< TYPES &... >
template<typename... TYPES>
auto  ToForwardTuple (TYPES &&... args) -> Tuple< TYPES &&... >
template<typename F , typename ... TYPES>
void  TupleForEach (const Tuple< TYPES ... > &tup, F &&func)
template<typename F , typename ... TYPES>
void  TupleForEach (Tuple< TYPES ... > &tup, F &&func)
template<typename F , typename ... TYPES>
void  TupleForEach (Tuple< TYPES ... > &&tup, F &&func)
template<typename V , typename F , typename ... TYPES>
auto  TupleFold (const Tuple< TYPES ... > &tup, const V &initialValue, F &&func) -> V
template<typename V , typename F , typename ... TYPES>
auto  TupleFold (Tuple< TYPES ... > &tup, const V &initialValue, F &&func) -> V
template<typename V , typename F , typename ... TYPES>
auto  TupleFold (Tuple< TYPES ... > &&tup, const V &initialValue, F &&func) -> V

变量

static const IgnoredPlaceholder  Ignore