Collection< COLLECTION, VALUETYPE, SUPER > Class Template Reference Data Structures

#include <collection.h>

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

详细描述

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
COLLECTION The actual collection class, this has to have Collection as (direct or indirect) base class.
VALUETYPE The type of values stored in the collection.
SUPER The class to be used as base class for Collection .
另请参阅
$ref collections

Public Types

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

公共成员函数

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 < Bool ForEach (FN &&callback) const
template<typename FN >
Result < Bool ForEach (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 const VALUETYPE GetMapKey (const VALUETYPE &key)

Public Attributes

  VALUETYPE

Member Typedef Documentation

◆  Super

using Super = BaseCollection <COLLECTION, SUPER>

◆  ValueType

using ValueType = VALUETYPE

构造函数 & 析构函数文档编制

◆  Collection()

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

成员函数文档编制

◆  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.

参数
[in] v The value to look for.
返回
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.

参数
[in] v The value to look for.
返回
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.

参数
[in] v The value to look for.
返回
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.

参数
[in] v The value to look for.
返回
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