#include <collection.h>
详细描述
template<typename COLLECTION, typename VALUETYPE, typename SUPER, typename HASH>
class maxon::SetBase< COLLECTION, VALUETYPE, SUPER, HASH >
SetBase
is a helper template to be used as base class set-like collections. It will add iterator-based utility functions such as ToString, Find or AppendAll.
-
Template Parameters
-
COLLECTION
|
The actual collection class, this has to have
Collection
as (direct or indirect) base class.
|
VALUETYPE
|
The type of values stored in the collection.
|
SUPER
|
The class to be used as base class for
Collection
.
|
HASH
|
The hash class to be used for elements of the collection.
|
-
另请参阅
-
$ref sets
公共成员函数
|
template<typename... ARGS>
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
SetBase
(ARGS &&... args)
|
SetImpl
< COLLECTION & >
|
ToSet
()
|
SetImpl
< const COLLECTION & >
|
ToSet
() const
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
operator SetImpl< COLLECTION & >
()
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
operator SetImpl< const COLLECTION & >
() const
|
template<typename... ARGS>
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
SetBase0
(ARGS &&... args)
|
MAXON_ATTRIBUTE_FORCE_INLINE
ResultRef
< const
VALUETYPE
>
|
Append
(typename
ByValueParam
<
VALUETYPE
>::
type
v)
|
template<typename COLLECTION2 >
|
Bool
|
ContainsAllImpl
(COLLECTION2 &&other,
OverloadRank0
) const
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
添加
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags=
COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY
)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
AppendAll
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags=
COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY
)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
CopyFrom
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags=
COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE
)
|
template<typename COLLECTION2 >
|
Result
< void >
|
SubtractImpl
(COLLECTION2 &&other,
OverloadRank0
)
|
template<typename COLLECTION2 , typename COMPARE >
|
Bool
|
IsEqualImpl
(const COLLECTION2 &other, COMPARE &&cmp,
OverloadRank0
) const
|
HashInt
|
GetHashCode
() const
|
template<typename... ARGS>
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
Collection
(ARGS &&... args)
|
ResultOk
< void >
|
VariadicAppend
()
|
template<typename V , typename... VALUES>
|
Result
< void >
|
VariadicAppend
(V &&value, VALUES &&... rest)
|
|
operator ValueReceiver< const VALUETYPE & >
()
|
|
operator ValueReceiver< VALUETYPE && >
()
|
|
operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT
(scalar,
VALUETYPE
)
|
DummyParamType &
|
type
()
|
template<typename FN >
|
Result
<
Bool
>
|
ForEach
(FN &&callback) const
|
template<typename FN >
|
Result
<
Bool
>
|
ForEach
(FN &&callback)
|
template<typename H = COLLECTION>
|
H::Iterator
|
Find
(typename
ByValueParam
<
VALUETYPE
>::
type
v)
|
template<typename H = COLLECTION>
|
H::ConstIterator
|
Find
(typename
ByValueParam
<
VALUETYPE
>::
type
v) const
|
Int
|
FindIndex
(typename
ByValueParam
<
VALUETYPE
>::
type
v) const
|
MAXON_ATTRIBUTE_FORCE_INLINE
Bool
|
Contains
(typename
ByValueParam
<
VALUETYPE
>::
type
v) const
|
template<typename... ARGS>
|
MAXON_ATTRIBUTE_FORCE_INLINE
|
BaseCollection
(ARGS &&... args)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
std::enable_if< maxon::IsCollection< COLLECTION2 >::value,
Bool
>::type
|
operator==
(const COLLECTION2 &other) const
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
std::enable_if< maxon::IsCollection< COLLECTION2 >::value,
Bool
>::type
|
operator!=
(const COLLECTION2 &other) const
|
template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&!
STD_IS_REPLACEMENT
(same, typename std::decay< COMPARE >::type,
EQUALITY
),
Bool
>::type
|
IsEqual
(const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
AppendAll
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags=
COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY
)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
CopyFrom
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags=
COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE
)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
Subtract
(COLLECTION2 &&other)
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
Intersect
(const COLLECTION2 &other)
|
template<typename COLLECTION2 >
|
Bool
|
Intersects
(const COLLECTION2 &other) const
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Result
< void >
|
CopyFromImpl
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags,
OverloadRank0
)
|
template<typename COLLECTION2 >
|
Result
< void >
|
AppendAllImpl
(COLLECTION2 &&other,
COLLECTION_RESIZE_FLAGS
resizeFlags,
Bool
overwrite,
OverloadRank0
)
|
template<typename COLLECTION2 >
|
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=nullptr) const
|
template<typename COLLECTION2 >
|
MAXON_ATTRIBUTE_FORCE_INLINE
Bool
|
ContainsAll
(COLLECTION2 &&other) const
|
template<typename COLLECTION2 >
|
Bool
|
ContainsAllImpl
(COLLECTION2 &&other,
OverloadRank0
) const
|