Open Search
    Collection< COLLECTION, VALUETYPE, SUPER > Class Template Reference

    #include <collection.h>

    Inheritance diagram for Collection< COLLECTION, VALUETYPE, SUPER >:

    Detailed Description

    template<typename COLLECTION, typename VALUETYPE, typename SUPER>
    class maxon::Collection< COLLECTION, VALUETYPE, SUPER >

    Collection is a helper template to be used as base class for set-, array- or list-like collections. It will add iterator-based utility functions such as ToString, Find or AppendAll.

    Template Parameters
    COLLECTIONThe actual collection class, this has to have Collection as (direct or indirect) base class.
    VALUETYPEThe type of values stored in the collection.
    SUPERThe class to be used as base class for Collection.
    See also
    $ref collections

    Public Types

    using Super = BaseCollection< COLLECTION, SUPER >
     
    using ValueType = VALUETYPE
     
    - Public Types inherited from BaseCollection< COLLECTION, SUPER >
    using IsCollection = std::true_type
     
    using IsBaseArray = std::false_type
     

    Public Member Functions

    template<typename... ARGS>
    MAXON_ATTRIBUTE_FORCE_INLINE Collection (ARGS &&... args)
     
    ResultOk< void > VariadicAppend ()
     
    template<typename V , typename... VALUES>
    Result< void > VariadicAppend (V &&value, VALUES &&... rest)
     
     operator ValueReceiver< const VALUETYPE & > ()
     
     operator ValueReceiver< VALUETYPE && > ()
     
     operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, VALUETYPE)
     
    DummyParamType & type ()
     
    template<typename FN >
    Result< BoolForEach (FN &&callback) const
     
    template<typename FN >
    Result< BoolForEach (FN &&callback)
     
    template<typename H = COLLECTION>
    H::Iterator Find (typename ByValueParam< VALUETYPE >::type v)
     
    template<typename H = COLLECTION>
    H::ConstIterator Find (typename ByValueParam< VALUETYPE >::type v) const
     
    Int FindIndex (typename ByValueParam< VALUETYPE >::type v) const
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (typename ByValueParam< VALUETYPE >::type v) const
     
    - Public Member Functions inherited from BaseCollection< COLLECTION, SUPER >
    template<typename... ARGS>
    MAXON_ATTRIBUTE_FORCE_INLINE BaseCollection (ARGS &&... args)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator== (const COLLECTION2 &other) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator!= (const COLLECTION2 &other) const
     
    template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&!STD_IS_REPLACEMENT(same, typename std::decay< COMPARE >::type, EQUALITY), Bool >::type IsEqual (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Subtract (COLLECTION2 &&other)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Intersect (const COLLECTION2 &other)
     
    template<typename COLLECTION2 >
    Bool Intersects (const COLLECTION2 &other) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0)
     
    template<typename COLLECTION2 >
    Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
     
    template<typename COLLECTION2 >
    Result< void > IntersectImpl (COLLECTION2 &&other, OverloadRank0)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty () const
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated () const
     
    String ToString (const FormatStatement *formatStatement=nullptr) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Bool ContainsAll (COLLECTION2 &&other) const
     
    template<typename COLLECTION2 >
    Bool ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const
     

    Static Public Member Functions

    static const VALUETYPEGetMapKey (const VALUETYPE &key)
     

    Public Attributes

     VALUETYPE
     

    Member Typedef Documentation

    ◆ Super

    using Super = BaseCollection<COLLECTION, SUPER>

    ◆ ValueType

    Constructor & Destructor Documentation

    ◆ Collection()

    MAXON_ATTRIBUTE_FORCE_INLINE Collection ( ARGS &&...  args)
    explicit

    Member Function Documentation

    ◆ VariadicAppend() [1/2]

    ResultOk<void> VariadicAppend ( )

    ◆ VariadicAppend() [2/2]

    Result<void> VariadicAppend ( V &&  value,
    VALUES &&...  rest 
    )

    ◆ operator ValueReceiver< const VALUETYPE & >()

    operator ValueReceiver< const VALUETYPE & > ( )

    ◆ operator ValueReceiver< VALUETYPE && >()

    operator ValueReceiver< VALUETYPE && > ( )

    ◆ operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT()

    operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT ( scalar  ,
    VALUETYPE   
    )

    ◆ type()

    DummyParamType& type ( )

    ◆ ForEach() [1/2]

    Result<Bool> ForEach ( FN &&  callback) const

    ◆ ForEach() [2/2]

    Result<Bool> ForEach ( FN &&  callback)

    ◆ Find() [1/2]

    H::Iterator Find ( typename ByValueParam< VALUETYPE >::type  v)

    Returns an iterator pointing to the first occurrence of v in this collection. If v cannot be found at all, the iterator will point to the end.

    Parameters
    [in]vThe value to look for.
    Returns
    An iterator pointing to an element which equals v, or a null iterator if the element coudn't be found.

    ◆ Find() [2/2]

    H::ConstIterator Find ( typename ByValueParam< VALUETYPE >::type  v) const

    Returns an iterator pointing to the first occurrence of v in this collection. If v cannot be found at all, the iterator will point to the end.

    Parameters
    [in]vThe value to look for.
    Returns
    An iterator pointing to an element which equals v, or a null iterator if the element coudn't be found.

    ◆ FindIndex()

    Int FindIndex ( typename ByValueParam< VALUETYPE >::type  v) const

    Returns the index of the first occurrence of v in this collection. If v cannot be found at all, a negative value will be returned.

    Parameters
    [in]vThe value to look for.
    Returns
    Index of the first element which equals v, or a negative value if no such element exists.

    ◆ Contains()

    MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains ( typename ByValueParam< VALUETYPE >::type  v) const

    Returns true if v is contained in this collection.

    Parameters
    [in]vThe value to look for.
    Returns
    True if this collection has an element which equals v, false otherwise.

    ◆ GetMapKey()

    static const VALUETYPE& GetMapKey ( const VALUETYPE key)
    static

    Member Data Documentation

    ◆ VALUETYPE

    VALUETYPE