Open Search
    ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH > Class Template Reference

    #include <collection.h>

    Inheritance diagram for ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >:

    Detailed Description

    template<typename COLLECTION, typename VALUETYPE, typename SUPER, typename HASH>
    class maxon::ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >

    Intermediate class.

    Public Member Functions

    template<typename... ARGS>
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase0 (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 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, COMPARERESULT >::type Compare (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
     
    Bool IsValidIndex (Int index) const
     
    Result< void > CheckValidIndex (Int index) const
     
    Int FindIndex (typename ByValueParam< VALUETYPE >::type v, Int start) const
     
    Int FindLastIndex (typename ByValueParam< VALUETYPE >::type v) const
     
    Int FindLastIndex (typename ByValueParam< VALUETYPE >::type v, Int start) const
     
    Bool EraseFirst (typename ByValueParam< VALUETYPE >::type v)
     
    Int EraseAll (typename ByValueParam< VALUETYPE >::type v)
     
    template<typename COLLECTION2 >
    Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
     
    template<typename COLLECTION2 >
    Result< void > InsertAll (Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    Result< void > Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    Result< void > SubtractImpl (COLLECTION2 &&other, OverloadRank0)
     
    template<typename COLLECTION2 , typename COMPARE >
    Bool IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
     
    template<typename COLLECTION2 , typename COMPARE >
    COMPARERESULT CompareImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
     
    HashInt GetHashCode () const
     
    UniqueHash GetUniqueHashCode () const
     
    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< COLLECTION > Slice (Int start)
     
    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const COLLECTION > Slice (Int start) const
     
    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< COLLECTION > Slice (Int start, Int end)
     
    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const COLLECTION > Slice (Int start, Int end) const
     
    BlockIterator< COLLECTION, VALUETYPE, false, false > GetBlocks ()
     
    BlockIterator< COLLECTION, VALUETYPE, true, false > GetBlocks () const
     
    BlockIterator< COLLECTION, VALUETYPE, false, true > GetStridedBlocks ()
     
    BlockIterator< COLLECTION, VALUETYPE, true, true > GetStridedBlocks () const
     
    - Public Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
    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 Attributes

    static const COLLECTION_KIND KIND
     

    Private Types

    using Super = Collection< COLLECTION, VALUETYPE, SUPER >
     

    Additional Inherited Members

    - Public Types inherited from Collection< COLLECTION, VALUETYPE, SUPER >
    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
     
    - Static Public Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
    static const VALUETYPEGetMapKey (const VALUETYPE &key)
     
    - Public Attributes inherited from Collection< COLLECTION, VALUETYPE, SUPER >
     VALUETYPE
     

    Member Typedef Documentation

    ◆ Super

    using Super = Collection<COLLECTION, VALUETYPE, SUPER>
    private

    Constructor & Destructor Documentation

    ◆ ArrayBase0()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase0 ( ARGS &&...  args)
    explicitconstexpr

    Member Function Documentation

    ◆ operator<()

    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool>::type operator< ( const COLLECTION2 &  other) const

    ◆ operator<=()

    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool>::type operator<= ( const COLLECTION2 &  other) const

    ◆ operator>()

    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool>::type operator> ( const COLLECTION2 &  other) const

    ◆ operator>=()

    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool>::type operator>= ( const COLLECTION2 &  other) const

    ◆ Compare()

    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, COMPARERESULT>::type Compare ( const COLLECTION2 &  other,
    COMPARE &&  cmp = COMPARE() 
    ) const

    ◆ IsValidIndex()

    Bool IsValidIndex ( Int  index) const

    Returns true if the given index is within the array boundaries.

    ◆ CheckValidIndex()

    Result<void> CheckValidIndex ( Int  index) const

    Returns an error if the given index is not within the array boundaries.

    ◆ FindIndex()

    Int FindIndex ( typename ByValueParam< VALUETYPE >::type  v,
    Int  start 
    ) 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.
    [in]startThe start index. 0 by default.
    Returns
    Index of the first element which equals v, or a negative value if no such element exists.

    ◆ FindLastIndex() [1/2]

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

    Returns the index of the last 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 last element which equals v, or a negative value if no such element exists.

    ◆ FindLastIndex() [2/2]

    Int FindLastIndex ( typename ByValueParam< VALUETYPE >::type  v,
    Int  start 
    ) const

    Returns the index of the last 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.
    [in]startThe start index. 0 by default.
    Returns
    Index of the last element which equals v, or a negative value if no such element exists.

    ◆ EraseFirst()

    Bool EraseFirst ( typename ByValueParam< VALUETYPE >::type  v)

    Removes the first occurrence of v from this collection.

    Parameters
    [in]vThe value to remove.
    Returns
    True if the value could be found (then it has been removed), false otherwise.

    ◆ EraseAll()

    Int EraseAll ( typename ByValueParam< VALUETYPE >::type  v)

    Removes all occurrences of v from this collection.

    Parameters
    [in]vThe value to remove.
    Returns
    Number of removed occurrences.

    ◆ AppendAllImpl()

    Result<void> AppendAllImpl ( COLLECTION2 &&  other,
    COLLECTION_RESIZE_FLAGS  resizeFlags,
    Bool  overwrite,
    OverloadRank0   
    )

    ◆ InsertAll()

    Result<void> InsertAll ( Int  index,
    COLLECTION2 &&  other,
    COLLECTION_RESIZE_FLAGS  resizeFlags = COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY 
    )

    Inserts all elements from another collection other to this collection starting at the given index.

    Parameters
    [in]indexIndex for insertion (the array size will increase and the existing elements are moved).
    [in]otherAnother collection, may be any iterable object.
    [in]resizeFlagsIf ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data.
    Returns
    OK on success.

    ◆ Add()

    Result<void> Add ( COLLECTION2 &&  other,
    COLLECTION_RESIZE_FLAGS  resizeFlags = COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY 
    )

    Appends all elements from another collection other which are not yet contained in this array to this array. If this doesn't succeed for all entries, the array will be left in a valid, but intermediate state with only some entries from other added.

    Parameters
    [in]otherAnother collection, may be any iterable object.
    [in]resizeFlagsIf ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data.
    Returns
    OK on success.

    ◆ SubtractImpl()

    Result<void> SubtractImpl ( COLLECTION2 &&  other,
    OverloadRank0   
    )

    ◆ IsEqualImpl()

    Bool IsEqualImpl ( const COLLECTION2 &  other,
    COMPARE &&  cmp,
    OverloadRank0   
    ) const

    ◆ CompareImpl()

    COMPARERESULT CompareImpl ( const COLLECTION2 &  other,
    COMPARE &&  cmp,
    OverloadRank0   
    ) const

    ◆ GetHashCode()

    HashInt GetHashCode ( ) const

    ◆ GetUniqueHashCode()

    UniqueHash GetUniqueHashCode ( ) const

    ◆ Slice() [1/4]

    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator<COLLECTION> Slice ( Int  start)

    Returns an AutoIterator which iterates over all elements from the given start index up to the end of the array.

    Parameters
    [in]startStart index for the iteration.
    Returns
    AutoIterator iterating over elements from start up to the end.

    ◆ Slice() [2/4]

    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator<const COLLECTION> Slice ( Int  start) const

    Returns an AutoIterator which iterates over all elements from the given start index up to the end of the array.

    Parameters
    [in]startStart index for the iteration.
    Returns
    AutoIterator iterating over elements from start up to the end.

    ◆ Slice() [3/4]

    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator<COLLECTION> Slice ( Int  start,
    Int  end 
    )

    Returns an AutoIterator which iterates over all elements from the given start index up to but not including the given end index.

    Parameters
    [in]startStart index for the iteration.
    [in]endEnd index for the iteration, the iteration does not include the end itself.
    Returns
    AutoIterator iterating over elements from start up to but not including end.

    ◆ Slice() [4/4]

    MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator<const COLLECTION> Slice ( Int  start,
    Int  end 
    ) const

    Returns an AutoIterator which iterates over all elements from the given start index up to but not including the given end index.

    Parameters
    [in]startStart index for the iteration.
    [in]endEnd index for the iteration, the iteration does not include the end itself.
    Returns
    AutoIterator iterating over elements from start up to but not including end.

    ◆ GetBlocks() [1/2]

    BlockIterator<COLLECTION, VALUETYPE, false, false> GetBlocks ( )

    Returns a ForEachIterator which can be used to iterate over the Blocks of the collection. Typical usage is:

    for (Block<ValueType>& block : array.GetBlocks())
    {
    // ... do something with block (call GetFirst(), GetCount() ...)
    }

    ◆ GetBlocks() [2/2]

    BlockIterator<COLLECTION, VALUETYPE, true, false> GetBlocks ( ) const

    Returns a ForEachIterator which can be used to iterate over the Blocks of the collection. Typical usage is:

    for (const Block<const ValueType>& block : array.GetBlocks())
    {
    // ... do something with block (call GetFirst(), GetCount() ...)
    }

    ◆ GetStridedBlocks() [1/2]

    BlockIterator<COLLECTION, VALUETYPE, false, true> GetStridedBlocks ( )

    ◆ GetStridedBlocks() [2/2]

    BlockIterator<COLLECTION, VALUETYPE, true, true> GetStridedBlocks ( ) const

    Member Data Documentation

    ◆ KIND

    const COLLECTION_KIND KIND
    static