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
}
 

Functions

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)
 

Variables

 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