collection.h File Reference

Classes

class   PrivateGetMapKeyHelper
class   PrivateGetMapKey< C >
class   GetCollectionKind< COLLECTION, typename SFINAEHelper< void, typename std::decay< COLLECTION >::type::IsCollection >::type >
class   BaseCollection< COLLECTION, SUPER >
class   Collection< COLLECTION, VALUETYPE, SUPER >
class   BlockIterator< COLLECTION, VALUETYPE, CONSTITERATOR, STRIDED >
class   ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >
class   ArrayImpl< ARRAY >
class   ArrayBase< COLLECTION, VALUETYPE, SUPER, HASH >
class   SetBase0< COLLECTION, VALUETYPE, SUPER, HASH >
class   SetImpl< SET >
class   SetBase< COLLECTION, VALUETYPE, SUPER, HASH >
class   MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
class   MapImpl< MAP >
class   MapBase< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >

Namespaces

  maxon

Enumerations

enum   COLLECTION_RESIZE_FLAGS {
   NONE ,
   ON_SHRINK_KEEP_CAPACITY ,
   ON_SHRINK_FIT_TO_SIZE ,
   ON_GROW_RESERVE_CAPACITY ,
   ON_GROW_FIT_TO_SIZE ,
   ON_GROW_UNINITIALIZED ,
   ON_GROW_UNSPECIFIED ,
   ON_RESIZE_UNSPECIFIED ,
   FIT_TO_SIZE ,
   DEFAULT ,
   POD_UNINITIALIZED
}

函数

template<typename C >
Int   PrivateGetCount (const C &collection, OverloadRank0)
template<typename T , Int N>
Int   PrivateGetCount (T(&array)[N], OverloadRank1)
template<typename C >
SFINAEHelper< Int , typename C::IsCollection >::type  PrivateGetCount (const C &collection, OverloadRank2)
template<typename ITERABLE >
Int   GetCount (const ITERABLE &iterable)
template<typename SET , typename KEY >
MAXON_ATTRIBUTE_FORCE_INLINE Bool   PrivateContains (const SET &set, const KEY &key, OverloadRank0)
template<typename T , Int N, typename KEY >
Bool   PrivateContains (T(&array)[N], const KEY &key, OverloadRank1)
template<typename SET , typename KEY >
MAXON_ATTRIBUTE_FORCE_INLINE auto  PrivateContains (const SET &set, const KEY &key, OverloadRank1) -> decltype(set.Contains(key))
template<typename SET , typename KEY >
MAXON_ATTRIBUTE_FORCE_INLINE SFINAEHelper< Bool , typename SET::IsCollection >::type  PrivateContains (const SET &set, const KEY &key, OverloadRank2)
template<typename PREDICATE , typename KEY >
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Contains (const PREDICATE &predicate, const KEY &key)
template<typename COMPARE , typename T1 , typename T2 >
MAXON_ATTRIBUTE_FORCE_INLINE Bool   PrivateIsEqual (COMPARE &&cmp, const T1 &a, const T2 &b, OverloadRank0)
template<typename COMPARE , typename T1 , typename T2 >
MAXON_ATTRIBUTE_FORCE_INLINE auto  PrivateIsEqual (COMPARE &&cmp, const T1 &a, const T2 &b, OverloadRank1) -> decltype(cmp.IsEqual(a, b))
template<typename PREDICATE , typename T1 , typename T2 >
MAXON_ATTRIBUTE_FORCE_INLINE Bool   IsEqual (PREDICATE &&predicate, const T1 &a, const T2 &b)
  MAXON_MEMBERTYPE_DETECTOR (IsCollection, IsCollection, std::false_type)
enum maxon::COLLECTION_RESIZE_FLAGS   MAXON_ENUM_FLAGS (COLLECTION_RESIZE_FLAGS, "net.maxon.datatype.enum.collection_resize_flags", EARLY)
template<typename COLLECTION , typename T >
std::conditional<! STD_IS_REPLACEMENT (reference, COLLECTION) &&(GetCollectionKind< COLLECTION >::value != COLLECTION_KIND::NONE ), T &&, T & >::type  ValueForward (T &x)
template<typename COLLECTION , typename T , Bool STRIDED>
const Block< T, STRIDED, ! STD_IS_REPLACEMENT (reference, COLLECTION) &&(GetCollectionKind< COLLECTION >::value != COLLECTION_KIND::NONE )> &  BlockForward (const Block< T, STRIDED > &block)
template<typename COLLECTION >
COLLECTION &&  PrivateGetMap (COLLECTION &&c, OverloadRank0)
template<typename COLLECTION >
Substitute< COLLECTION &&, typename std::remove_reference< COLLECTION >::type::MapType >::type  PrivateGetMap (COLLECTION &&c, OverloadRank1)

变量

  NONE
  ON_SHRINK_KEEP_CAPACITY
  ON_SHRINK_FIT_TO_SIZE
  ON_GROW_RESERVE_CAPACITY
  ON_GROW_FIT_TO_SIZE
  ON_GROW_UNINITIALIZED
  ON_GROW_UNSPECIFIED
  ON_RESIZE_UNSPECIFIED
  FIT_TO_SIZE
  DEFAULT
  POD_UNINITIALIZED

Variable Documentation

◆  NONE

NONE

◆  ON_SHRINK_KEEP_CAPACITY

ON_SHRINK_KEEP_CAPACITY

Don't change capacity.

◆  ON_SHRINK_FIT_TO_SIZE

ON_SHRINK_FIT_TO_SIZE

Copy the array to a new memory block that is as small as possible to hold the data.

◆  ON_GROW_RESERVE_CAPACITY

ON_GROW_RESERVE_CAPACITY

Allocate some extra capacity (based on ComputeArraySize()).

◆  ON_GROW_FIT_TO_SIZE

ON_GROW_FIT_TO_SIZE

Grow the array exactly to the requested size.

◆  ON_GROW_UNINITIALIZED

ON_GROW_UNINITIALIZED

Do not initialize added elements (usually PODs) when resizing the array (is supported by all collections).

◆  ON_GROW_UNSPECIFIED

ON_GROW_UNSPECIFIED

Initialize added elements with unspecified (but legal) values. For example PODs can be left uninitialized, strong references can be zero-initialized for best performance.

◆  ON_RESIZE_UNSPECIFIED

ON_RESIZE_UNSPECIFIED

The resize operation may use unspecified (but legal) values for existing elements as well as for added elements. After resize all elements may contain unspecified values.

◆  FIT_TO_SIZE

FIT_TO_SIZE

Fits the array to the requested size for growing and shrinking.

◆  DEFAULT

DEFAULT

The default is to keep capacity on shrink and fit to size when growing the array.

◆  POD_UNINITIALIZED

POD_UNINITIALIZED