Concepts Library
The Concepts library is an extension onto the standard Concepts Library, as well as new useful ones.
Defined in module
<cmoon.concepts>
Core Concepts
arithmetic |
specifies that a type is arithmetic
|
signed_arithmetic |
specifies that a type is signed arithmetic
|
unsigned_arithmetic |
specifies that a type is unsigned arithmetic
|
complete_type |
specifies that a type has a known size
|
has_size |
specifies that a type where std::size(t) for some type T is valid
|
has_type |
specifies that a type where typename T::type is valid
|
stream_writable |
specifies that a type can be used in the stream output operator (operator<< )
|
character |
specifies that a type is a character
|
string_literal |
specifies that a type is a string literal
|
formattable |
specifies that a type where std::format(t) is valid
|
specialization_of |
specifies that a complete type is a template specialization of an incomplete type
|
decays_to |
specifies that a type decays from one type to another
|
class_type |
specifies that a type decays to itself and is a class
|
array |
specifies that a type is an array
|
movable_value |
specifies that a type is at minimum movable, but may not be swappable
|
Object Concepts
object |
specifies that a type is an object
|
function_object |
specifies that a type is an object and invocable
|
Invocable Concepts
supplier |
specifies that a type is an invocable that takes zero parameters and returns a non-void value
|
unary_operator |
specifies that a type is an invocable that takes and returns a non-void value of the same type
|
consumer |
specifies that a type is an invocable that takes arguments and returns void
|