Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/concepts"

From cppreference.com
< cpp
(start)
 
(+)
Line 1: Line 1:
 
{{title|Concepts library {{mark c++20}}}}
 
{{title|Concepts library {{mark c++20}}}}
 +
{{cpp/concepts/navbar}}
  
 
The concepts library provides definitions of fundamental library concepts that can be used to perform compile-time validation of template arguments and perform function dispatch based on properties of types. These concepts provide a foundation for equational reasoning in programs.
 
The concepts library provides definitions of fundamental library concepts that can be used to perform compile-time validation of template arguments and perform function dispatch based on properties of types. These concepts provide a foundation for equational reasoning in programs.

Revision as of 21:25, 17 June 2018

The concepts library provides definitions of fundamental library concepts that can be used to perform compile-time validation of template arguments and perform function dispatch based on properties of types. These concepts provide a foundation for equational reasoning in programs.

Template:cpp/concepts/dsc Boolean
Defined in header <concepts>
Defined in namespace std

Contents

Core language concepts
(C++20)
specifies that a type is the same as another type
(concept) [edit]
specifies that a type is derived from another type
(concept) [edit]
specifies that a type is implicitly convertible to another type
(concept) [edit]
specifies that two types share a common reference type
(concept) [edit]
specifies that two types share a common type
(concept) [edit]
(C++20)
specifies that a type is an integral type
(concept) [edit]
specifies that a type is an integral type that is signed
(concept) [edit]
specifies that a type is an integral type that is unsigned
(concept) [edit]
specifies that a type is assignable from another type
(concept) [edit]
specifies that a type can be swapped or that two types can be swapped with each other
(concept) [edit]
specifies that an object of the type can be destroyed
(concept) [edit]
specifies that a variable of the type can be constructed from or bound to a set of argument types
(concept) [edit]
specifies that an object of a type can be default constructed
(concept) [edit]
specifies that an object of a type can be move constructed
(concept) [edit]
specifies that an object of a type can be copy constructed and move constructed
(concept) [edit]
Comparison concepts
specifies that operator == is an equivalence relation
(concept) [edit]
specifies that the comparison operators on the type yield a total order
(concept) [edit]
Object concepts
(C++20)
specifies that an object of a type can be moved and swapped
(concept) [edit]
(C++20)
specifies that an object of a type can be copied, moved, and swapped
(concept) [edit]
specifies that an object of a type can be copied, moved, swapped, and default constructed
(concept) [edit]
(C++20)
specifies that a type is regular, that is, it is both semiregular and equality_comparable
(concept) [edit]
Callable concepts
specifies that a callable type can be invoked with a given set of argument types
(concept) [edit]
(C++20)
specifies that a callable type is a Boolean predicate
(concept) [edit]
(C++20)
specifies that a callable type is a binary relation
(concept) [edit]
specifies that a relation imposes a strict weak ordering
(concept) [edit]