Open Search
    TupleStorage< T > Class Template Reference

    #include <tuple.h>

    Inheritance diagram for TupleStorage< T >:

    Public Member Functions

     TupleStorage ()=default
     
    template<size_t... I, typename... ARGS>
     TupleStorage (std::index_sequence< I... > *, ARGS &&... args)
     
     MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR (TupleStorage, COPY_CONSTRUCTIBLE)
     
     MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT (TupleStorage, COPY_ASSIGNABLE)
     
     MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR (TupleStorage, MOVE_CONSTRUCTIBLE)
     
     MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT (TupleStorage, MOVE_ASSIGNABLE)
     
    - Public Member Functions inherited from TupleStorageBase< And< STD_IS_REPLACEMENT(default_constructible, T)... >::value, And< STD_IS_REPLACEMENT(trivially_destructible, T)... >::value, T... >
     TupleStorageBase ()=delete
     
     ~TupleStorageBase ()
     

    Private Types

    using Super = TupleStorageBase< And< STD_IS_REPLACEMENT(default_constructible, T)... >::value, And< STD_IS_REPLACEMENT(trivially_destructible, T)... >::value, T... >
     
    using IndexSequence = std::index_sequence_for< T... >
     

    Private Member Functions

    template<size_t... I>
    void CopyConstruct (std::index_sequence< I... > *, const TupleStorage &src)
     
    template<size_t... I>
    void CopyAssign (std::index_sequence< I... > *, const TupleStorage &src)
     
    template<size_t... I>
    void MoveConstruct (std::index_sequence< I... > *, TupleStorage &&src)
     
    template<size_t... I>
    void MoveAssign (std::index_sequence< I... > *, TupleStorage &&src)
     

    Static Private Attributes

    static const Bool COPY_CONSTRUCTIBLE
     
    static const Bool COPY_ASSIGNABLE
     
    static const Bool MOVE_CONSTRUCTIBLE
     
    static const Bool MOVE_ASSIGNABLE
     

    Additional Inherited Members

    - Public Types inherited from TupleStorageBase< And< STD_IS_REPLACEMENT(default_constructible, T)... >::value, And< STD_IS_REPLACEMENT(trivially_destructible, T)... >::value, T... >
    using Pack = ParameterPack< T... >
     
    - Protected Member Functions inherited from TupleStorageBase< And< STD_IS_REPLACEMENT(default_constructible, T)... >::value, And< STD_IS_REPLACEMENT(trivially_destructible, T)... >::value, T... >
     TupleStorageBase (ENUM_DONT_INITIALIZE)
     

    Member Typedef Documentation

    ◆ Super

    using Super = TupleStorageBase<And<STD_IS_REPLACEMENT(default_constructible, T)...>::value, And<STD_IS_REPLACEMENT(trivially_destructible, T)...>::value, T...>
    private

    ◆ IndexSequence

    using IndexSequence = std::index_sequence_for<T...>
    private

    Constructor & Destructor Documentation

    ◆ TupleStorage() [1/2]

    TupleStorage ( )
    default

    ◆ TupleStorage() [2/2]

    TupleStorage ( std::index_sequence< I... > *  ,
    ARGS &&...  args 
    )
    explicit

    Member Function Documentation

    ◆ MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR()

    MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR ( TupleStorage< T >  ,
    COPY_CONSTRUCTIBLE   
    )

    ◆ MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT()

    MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT ( TupleStorage< T >  ,
    COPY_ASSIGNABLE   
    )

    ◆ MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR()

    MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR ( TupleStorage< T >  ,
    MOVE_CONSTRUCTIBLE   
    )

    ◆ MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT()

    MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT ( TupleStorage< T >  ,
    MOVE_ASSIGNABLE   
    )

    ◆ CopyConstruct()

    void CopyConstruct ( std::index_sequence< I... > *  ,
    const TupleStorage< T > &  src 
    )
    private

    ◆ CopyAssign()

    void CopyAssign ( std::index_sequence< I... > *  ,
    const TupleStorage< T > &  src 
    )
    private

    ◆ MoveConstruct()

    void MoveConstruct ( std::index_sequence< I... > *  ,
    TupleStorage< T > &&  src 
    )
    private

    ◆ MoveAssign()

    void MoveAssign ( std::index_sequence< I... > *  ,
    TupleStorage< T > &&  src 
    )
    private

    Member Data Documentation

    ◆ COPY_CONSTRUCTIBLE

    const Bool COPY_CONSTRUCTIBLE
    staticprivate

    ◆ COPY_ASSIGNABLE

    const Bool COPY_ASSIGNABLE
    staticprivate

    ◆ MOVE_CONSTRUCTIBLE

    const Bool MOVE_CONSTRUCTIBLE
    staticprivate

    ◆ MOVE_ASSIGNABLE

    const Bool MOVE_ASSIGNABLE
    staticprivate