template<typename T, typename SMALL, typename LARGE, Int THRESHOLD, Int REVERSE_THRESHOLD>
class maxon::HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >
A HybridSet is an implementation of a set using an underlying HybridMap.
See HashSet for more examples on how to use sets in general.
- Template Parameters
 - 
  
    | T | Type of elements of the set.  | 
    | SMALL | A map selector template to choose the map implementation to use for a small number of entries.  | 
    | LARGE | A map selector template to choose the map implementation to use for a large number of entries.  | 
    | THRESHOLD | When the number of entries reaches THRESHOLD, HybridMap switches to the LARGE implementation.  | 
    | REVERSE_THRESHOLD | When the number of entries falls below REVERSE_THRESHOLD, HybridMap switches back to the SMALL implementation. If this is negative, this will never happen.  | 
  
   
- See also
 - HybridMap 
 
- 
$ref sets 
 
 | 
| using  | MapType = HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > | 
|   | 
| using  | Super = SetBase< HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >, T, Protected< MapType >, DefaultCompare > | 
|   | 
| using  | IsHybridMap = std::true_type | 
|   | 
| using  | IsHybridSet = std::true_type | 
|   | 
| using  | Iterator = typename Super::KeyIterator | 
|   | 
| using  | ConstIterator = typename Super::ConstKeyIterator | 
|   | 
| using  | SetType = HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > | 
|   | 
| using  | Super = BaseCollection< HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >, Protected< HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > > > | 
|   | 
| using  | ValueType = T | 
|   | 
| using  | IsCollection = std::true_type | 
|   | 
 | 
|   | HybridSet () | 
|   | 
|   | HybridSet (HybridSet &&src) | 
|   | 
|   | MAXON_OPERATOR_MOVE_ASSIGNMENT (HybridSet) | 
|   | 
| MapType &  | GetMap () | 
|   | 
| const MapType &  | GetMap () const | 
|   | 
| Bool  | Contains (typename ByValueParam< T >::type value) const | 
|   | 
| void  | Insert () const | 
|   | 
| ResultMemT< Iterator >  | Insert (const T &value, Bool &added=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | Insert (T &&value, Bool &added=BoolLValue()) | 
|   | 
| ResultRef< const T >  | InsertKey (const T &value, Bool &added=BoolLValue()) | 
|   | 
| ResultRef< const T >  | InsertKey (T &&value, Bool &added=BoolLValue()) | 
|   | 
| Result< Bool >  | Erase (const T &value) | 
|   | 
| ConstIterator  | Begin () const | 
|   | 
| ConstIterator  | End () const | 
|   | 
| Iterator  | Begin () | 
|   | 
| Iterator  | End () | 
|   | 
| Iterator  | Erase (const Iterator &it) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | SetBase (ARGS &&... args) | 
|   | 
| SetImpl< HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & >  | ToSet () | 
|   | 
| SetImpl< const HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & >  | ToSet () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | operator SetImpl< HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & > () | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | operator SetImpl< const HybridSet< T, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & > () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | SetBase0 (ARGS &&... args) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE ResultRef< const T >  | Append (typename ByValueParam< T >::type v) | 
|   | 
| Bool  | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE) | 
|   | 
| Result< void >  | SubtractImpl (COLLECTION2 &&other, OverloadRank0) | 
|   | 
| Bool  | IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const | 
|   | 
| UInt  | GetHashCode () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | Collection (ARGS &&... args) | 
|   | 
| ResultOk< void >  | VariadicAppend () | 
|   | 
| Result< void >  | VariadicAppend (V &&value, VALUES &&... rest) | 
|   | 
|   | operator ValueReceiver< const T & > () | 
|   | 
|   | operator ValueReceiver< T && > () | 
|   | 
|   | operator ValueReceiver< typename std::conditional< std::is_scalar< T >::value, T, DummyParamType & >::type > () | 
|   | 
| Result< Bool >  | ForEach (FN &&callback) | 
|   | 
| H::Iterator  | Find (typename ByValueParam< T >::type v) | 
|   | 
| H::ConstIterator  | Find (typename ByValueParam< T >::type v) const | 
|   | 
| Int  | FindIndex (typename ByValueParam< T >::type v) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | Contains (typename ByValueParam< T >::type v) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | BaseCollection (ARGS &&... args) | 
|   | 
| 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_same< typename std::decay< COMPARE >::type, EQUALITY >::value, 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) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | Subtract (COLLECTION2 &&other) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | Intersect (const COLLECTION2 &other) | 
|   | 
| 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 | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | IsPopulated () const | 
|   | 
| String  | ToString (const FormatStatement *formatStatement) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | ContainsAll (COLLECTION2 &&other) const | 
|   | 
| Bool  | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const | 
|   | 
|   | __attribute__ ((always_inline)) explicit Protected(ARGS &&... args) | 
|   | 
 | 
| static const T &  | GetMapKey (const T &key) | 
|   | 
| static const COLLECTION_KIND  | KIND | 
|   | 
| using  | SmallType = typename SMALL::template Type< T, UnitType > | 
|   | 
| using  | LargeType = typename LARGE::template Type< T, UnitType > | 
|   | 
| using  | IsHybridMap = std::true_type | 
|   | 
| using  | Iterator = IteratorTemplate< false, EntryIteratorBase > | 
|   | 
| using  | ConstIterator = IteratorTemplate< true, EntryIteratorBase > | 
|   | 
| using  | KeyIterator = IteratorTemplate< false, KeyIteratorBase > | 
|   | 
| using  | ConstKeyIterator = IteratorTemplate< true, KeyIteratorBase > | 
|   | 
| using  | ValueIterator = IteratorTemplate< false, ValueIteratorBase > | 
|   | 
| using  | ConstValueIterator = IteratorTemplate< true, ValueIteratorBase > | 
|   | 
| using  | MapType = HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > | 
|   | 
| using  | Super = BaseCollection< HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD >, EmptyClass > | 
|   | 
| using  | KeyType = T | 
|   | 
| using  | ValueType = UnitType | 
|   | 
| using  | IsCollection = std::true_type | 
|   | 
| SmallType &  | GetSmall () | 
|   | 
| const SmallType &  | GetSmall () const | 
|   | 
| LargeType &  | GetLarge () | 
|   | 
| const LargeType &  | GetLarge () const | 
|   | 
| Iterator  | Begin () | 
|   | 
| ConstIterator  | Begin () const | 
|   | 
| Iterator  | End () | 
|   | 
| ConstIterator  | End () const | 
|   | 
| KeyIterator  | GetKeys () | 
|   | 
| ConstKeyIterator  | GetKeys () const | 
|   | 
| ValueIterator  | GetValues () | 
|   | 
| ConstValueIterator  | GetValues () const | 
|   | 
|   | HybridMap () | 
|   | 
|   | HybridMap (HybridMap &&src) | 
|   | 
|   | ~HybridMap () | 
|   | 
|   | MAXON_OPERATOR_MOVE_ASSIGNMENT (HybridMap) | 
|   | 
| Result< void >  | CopyFromImpl (MAP &&src, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0) | 
|   | 
| SFINAEHelper< Result< void >, typename std::remove_reference< MAP >::type::IsHybridMap >::type  | CopyFromImpl (MAP &&src, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank1) | 
|   | 
| void  | Flush () | 
|   | 
| void  | Reset () | 
|   | 
| Int  | GetCount () const | 
|   | 
| Int  | GetOperationCountForSearch () const | 
|   | 
| Int  | GetMemorySize () const | 
|   | 
| ResultMem  | SetCapacityHint (Int capacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) | 
|   | 
| ResultRef< UnitType >  | InsertKey (const T &key, Bool &created=BoolLValue()) | 
|   | 
| ResultRef< UnitType >  | InsertKey (T &&key, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | InsertEntry (const T &key, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | InsertEntry (T &&key, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | Insert (const T &key, const UnitType &value, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | Insert (T &&key, const UnitType &value, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | Insert (const T &key, UnitType &&value, Bool &created=BoolLValue()) | 
|   | 
| ResultMemT< Iterator >  | Insert (T &&key, UnitType &&value, Bool &created=BoolLValue()) | 
|   | 
| const UnitType *  | FindValue (const T &key) const | 
|   | 
| UnitType *  | FindValue (const T &key) | 
|   | 
| Iterator  | Find (const T &key) | 
|   | 
| ConstIterator  | Find (const T &key) const | 
|   | 
| Iterator  | FindFloor (const T &key) | 
|   | 
| ConstIterator  | FindFloor (const T &key) const | 
|   | 
| Result< Bool >  | Erase (const T &key) | 
|   | 
| IteratorTemplate< false, SUPER >  | Erase (const IteratorTemplate< false, SUPER > &position) | 
|   | 
| Result< void >  | UseLargeMap () | 
|   | 
| Result< void >  | UseSmallMap () | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | MapBase (ARGS &&... args) | 
|   | 
| MapImpl< HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & >  | ToMap () | 
|   | 
| MapImpl< const HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & >  | ToMap () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | operator MapImpl< HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & > () | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | operator MapImpl< const HybridMap< T, UnitType, SMALL, LARGE, THRESHOLD, REVERSE_THRESHOLD > & > () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | MapBase0 (ARGS &&... args) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | Contains (typename ByValueParam< T >::type key) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE SFINAEHelper< Bool, typename PAIR::KeyType >::type  | Contains (const PAIR &pair) const | 
|   | 
| ResultRef< UnitType >  | Append (const T &key) | 
|   | 
| SFINAEHelper< ResultRef< UnitType >, typename PAIR::KeyType >::type  | Append (const PAIR &pair) | 
|   | 
| Result< void >  | Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) | 
|   | 
| Result< void >  | AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) | 
|   | 
| Result< void >  | AppendAllInverse (COLLECTION2 &&other) | 
|   | 
| Bool  | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const | 
|   | 
| Result< void >  | SubtractImpl (COLLECTION2 &&other, OverloadRank0) | 
|   | 
| Bool  | IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const | 
|   | 
| UInt  | GetHashCode () const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE  | BaseCollection (ARGS &&... args) | 
|   | 
| 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_same< typename std::decay< COMPARE >::type, EQUALITY >::value, 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) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | Subtract (COLLECTION2 &&other) | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Result< void >  | Intersect (const COLLECTION2 &other) | 
|   | 
| 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 | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | IsPopulated () const | 
|   | 
| String  | ToString (const FormatStatement *formatStatement) const | 
|   | 
| MAXON_ATTRIBUTE_FORCE_INLINE Bool  | ContainsAll (COLLECTION2 &&other) const | 
|   | 
| Bool  | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const | 
|   | 
| static const T &  | GetMapKey (const T &key) | 
|   | 
| static const T &  | GetMapKey (const PAIR &pair) | 
|   | 
| Bool  | _small | 
|   | 
| std::aligned_union2< 0, SmallType, LargeType >::type  | _union [1] | 
|   | 
| static const COLLECTION_KIND  | KIND | 
|   |