BaseCollection< COLLECTION, SUPER > Class Template Reference Data Structures
#include <collection.h>
BaseCollection is a helper template to be used as base class for collections which have Begin()/End() functions returning iterators, and a GetCount() function. It will then add iterator-based utility functions such as ToString.
| COLLECTION | The actual collection class, this has to have BaseCollection as (direct or indirect) base class. |
| SUPER | The class to be used as base class for BaseCollection . |
Public Types |
|
| using | IsCollection = std::true_type |
公共成员函数 |
|
| 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 |
| using IsCollection = std::true_type |
|
explicit |
| MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool >::type operator== | ( | const COLLECTION2 & | other | ) | const |
| MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if<maxon::IsCollection<COLLECTION2>::value, Bool >::type operator!= | ( | const COLLECTION2 & | other | ) | const |
| 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 |
| MAXON_ATTRIBUTE_FORCE_INLINE Result <void> AppendAll | ( | COLLECTION2 && | other , |
| COLLECTION_RESIZE_FLAGS |
resizeFlags
=
COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY
|
||
| ) |
Appends all elements from another collection
other
to this collection. If this doesn't succeed for all entries, the collection will be left in a valid, but intermediate state with only some entries from
other
added.
| [in] | other | Another collection, may be any iterable object. |
| [in] | resizeFlags | If ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data. |
| MAXON_ATTRIBUTE_FORCE_INLINE Result <void> CopyFrom | ( | COLLECTION2 && | other , |
| COLLECTION_RESIZE_FLAGS |
resizeFlags
=
COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE
|
||
| ) |
Makes this collection a copy of
other
. If copying doesn't succeed for all entries, the collection will be left in a valid, but intermediate state with only some entries from
other
added.
| [in] | other | Another collection, may be any iterable object. |
| [in] | resizeFlags | If ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data. |
| MAXON_ATTRIBUTE_FORCE_INLINE Result <void> Subtract | ( | COLLECTION2 && | other | ) |
Removes all elements of another collection
other
from this collection. Elements of this collection which are not part of
other
are kept. For a map, only the keys are considered, i.e., an entry is removed from this map if its key is contained in
other
, regardless of the corresponding values.
| [in] | other | Another collection, may be any iterable object. |
| MAXON_ATTRIBUTE_FORCE_INLINE Result <void> Intersect | ( | const COLLECTION2 & | other | ) |
Intersects this collection with the
other
collection. I.e., elements which are not contained in
other
are removed. For a map, only the keys are considered, i.e., an entry is kept in this map if its key is contained in
other
, regardless of the corresponding values.
| [in] | other | Another collection, may be any predicate object. |
| Bool Intersects | ( | const COLLECTION2 & | other | ) | const |
| MAXON_ATTRIBUTE_FORCE_INLINE Result <void> CopyFromImpl | ( | COLLECTION2 && | other , |
| COLLECTION_RESIZE_FLAGS | resizeFlags , | ||
| OverloadRank0 | |||
| ) |
| Result <void> AppendAllImpl | ( | COLLECTION2 && | other , |
| COLLECTION_RESIZE_FLAGS | resizeFlags , | ||
| Bool | overwrite , | ||
| OverloadRank0 | |||
| ) |
| Result <void> IntersectImpl | ( | COLLECTION2 && | other , |
| OverloadRank0 | |||
| ) |
| MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty | ( | ) | const |
Checks if the collection is empty. This is the same as
GetCount() == 0
| MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated | ( | ) | const |
Checks if the collection is populated. This is the same as
GetCount() != 0
| MAXON_ATTRIBUTE_FORCE_INLINE Bool ContainsAll | ( | COLLECTION2 && | other | ) | const |
Returns true if this collection contains all elements from another collection.
| [in] | other | Another collection, may be any iterable object. |
other
, false otherwise.
| Bool ContainsAllImpl | ( | COLLECTION2 && | other , |
| OverloadRank0 | |||
| ) | const |