STL (details)
Core language
Same
-
template<typename T, typename U>
concept Same
DerivedFrom
-
template<typename Derived, typename Base>
concept DerivedFrom
ConvertibleTo
-
template<typename From, typename To>
concept ConvertibleTo
CommonReference
-
template<typename T, typename U>
concept CommonReference
Common
-
template<typename T, typename U>
concept Common
Integral
-
template<typename T>
concept Integral
SignedIntegral
-
template<typename T>
concept SignedIntegral
UnsignedIntegral
-
template<typename T>
concept UnsignedIntegral
Assignable
-
template<typename Lhs, typename Rhs>
concept Assignable
Swappable
-
template<typename T>
concept Swappable
SwappableWith
-
template<typename T, typename U>
concept SwappableWith
Destructible
-
template<typename T>
concept Destructible
Constructible
-
template<typename T, typename ...Args>
concept Constructible
DefaultConstructible
-
template<typename T>
concept DefaultConstructible
MoveConstructible
-
template<typename T>
concept MoveConstructible
CopyConstructible
-
template<typename T>
concept CopyConstructible
Object
Movable
-
template<typename T>
concept Movable
Copyable
-
template<typename T>
concept Copyable
Semiregular
-
template<typename T>
concept Semiregular
Regular
-
template<typename T>
concept Regular
Comparison
Boolean
-
template<typename B>
concept Boolean
__WeaklyEqualityComparableWith
-
template<typename T, typename U>
concept __WeaklyEqualityComparableWith
EqualityComparable
-
template<typename T>
concept EqualityComparable
EqualityComparableWith
-
template<typename T, typename U>
concept EqualityComparableWith
StrictTotallyOrdered
-
template<typename T>
concept StrictTotallyOrdered
StrictTotallyOrderedWith
-
template<typename T, typename U>
concept StrictTotallyOrderedWith
Callable
Invocable
-
template<typename F, typename ...Args>
concept Invocable
RegularInvocable
-
template<typename F, typename ...Args>
concept RegularInvocable
Predicate
-
template<typename F, typename ...Args>
concept Predicate
Relation
-
template<typename R, typename T, typename U>
concept Relation
StrictWeakOrder
-
template<typename R, typename T, typename U>
concept StrictWeakOrder
Random Number Generator
UniformRandomNumberGenerator
-
template<class G>
concept UniformRandomNumberGenerator
Iterator
Readable
-
template<typename In>
concept Readable
Writable
-
template<typename Out, typename T>
concept Writable
WeaklyIncrementable
-
template<typename I>
concept WeaklyIncrementable
Incrementable
-
template<typename I>
concept Incrementable
Iterator
-
template<typename I>
concept Iterator
Sentinel
-
template<typename S, typename I>
concept Sentinel
SizedSentinel
-
template<typename S, typename I>
concept SizedSentinel
InputIterator
-
template<typename I>
concept InputIterator
OutputIterator
-
template<typename I, typename T>
concept OutputIterator
ForwardIterator
-
template<typename I>
concept ForwardIterator
BidirectionalIterator
-
template<typename I>
concept BidirectionalIterator
RandomAccessIterator
-
template<typename I>
concept RandomAccessIterator
Indirect Callable
IndirectUnaryInvocable
-
template<typename F, typename I>
concept IndirectUnaryInvocable
IndirectRegularUnaryInvocable
-
template<typename F, typename I>
concept IndirectRegularUnaryInvocable
IndirectUnaryPredicate
-
template<typename F, typename I>
concept IndirectUnaryPredicate
IndirectRelation
IndirectStrictWeakOrder
Common algorithm requirements
IndirectlyMovable
-
template<typename In, typename Out>
concept IndirectlyMovable
IndirectlyMovableStorable
-
template<typename In, typename Out>
concept IndirectlyMovableStorable
IndirectlyCopyable
-
template<typename In, typename Out>
concept IndirectlyCopyable
IndirectlyCopyableStorable
-
template<typename In, typename Out>
concept IndirectlyCopyableStorable
IndirectlySwappable
IndirectlyComparable
-
template<typename I1, typename I2, typename R = equal_to, typename P1 = identity, typename P2 = identity>
concept IndirectlyComparable
Permutable
-
template<typename I>
concept Permutable
Mergeable
-
template<typename I1, typename I2, typename Out, typename R = less, typename P1 = identity, typename P2 = identity>
concept Mergeable
Sortable
-
template<typename I, typename R = less, typename P = identity>
concept Sortable
Range
Range
-
template<typename T>
concept Range
SizedRange
-
template<typename T>
concept SizedRange
View
-
template<typename T>
concept View
BoundedRange
-
template<typename T>
concept BoundedRange
InputRange
-
template<typename T>
concept InputRange
OutputRange
-
template<typename R, typename T>
concept OutputRange
ForwardRange
-
template<typename T>
concept ForwardRange
BidirectionalRange
-
template<typename T>
concept BidirectionalRange
RandomAccessRange
-
template<typename T>
concept RandomAccessRange