43 using KeyExtractorType =
typename inherited::KeyExtractorType;
44 using KeyEqualityComparerType =
typename inherited::KeyEqualityComparerType;
46 using KeyType =
typename inherited::KeyType;
47 using key_type =
typename inherited::key_type;
54 template <IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<key_type>>
65 return fKeyComparer_ (fKeyExtractor_ (
lhs),
rhs);
69 return fKeyComparer_ (
lhs, fKeyExtractor_ (
rhs));
71 int operator() (
const value_type&
lhs,
const value_type&
rhs)
const
73 return fKeyComparer_ (fKeyExtractor_ (
lhs), fKeyExtractor_ (
rhs));
77 using is_transparent =
int;
84 template <IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<key_type>>
89 template <IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<KEY_TYPE>>
96 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE, IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = equal_to<KEY_TYPE>>
100#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
101 : SortedKeyedCollection_stdset{KeyExtractorType{}, KEY_INORDER_COMPARER{}}
104 AssertRepValidType_ ();
108 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE, IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<KEY_TYPE>>
111 template <IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER, IIterableOfTo<T> ITERABLE_OF_ADDABLE>
113 template <IInputIterator<T> ITERATOR_OF_ADDABLE, IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<KEY_TYPE>>
116 template <IInputIterator<T> ITERATOR_OF_ADDABLE, IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER = less<KEY_TYPE>>
119 template <IInOrderComparer<KEY_TYPE> KEY_INORDER_COMPARER, IInputIterator<T> ITERATOR_OF_ADDABLE>
126 nonvirtual SortedKeyedCollection_stdset& operator= (SortedKeyedCollection_stdset&&) noexcept =
default;
127 nonvirtual SortedKeyedCollection_stdset& operator= (
const SortedKeyedCollection_stdset&) =
default;
135 nonvirtual
void AssertRepValidType_ ()
const;
conditional_t< qStroika_Foundation_Memory_PreferBlockAllocation and andTrueCheck, BlockAllocator< T >, std::allocator< T > > BlockAllocatorOrStdAllocatorAsAppropriate
for type T, either use BlockAllocator<T>, or std::allocator