Open Search
    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  ArrayBase< COLLECTION, VALUETYPE, SUPER, HASH >
     
    class  SetBase0< COLLECTION, VALUETYPE, SUPER, HASH >
     
    class  SetBase< COLLECTION, VALUETYPE, SUPER, HASH >
     
    class  MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
     
    class  MapBase< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
     

    Namespaces

     maxon
     

    Enumerations

    enum class  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