std::convertible_to
Defined in header <concepts>
|
||
template
<
class From, class To >
concept convertible_to =
|
(since C++20) | |
The concept convertible_to<From, To> specifies that an expression of the same type and value category as those of
std::declval
<From>
(
)
can be implicitly and explicitly converted to the type To
Semantic requirements
convertible_to<From, To> is modeled only if, given a function fun
of type
std::add_rvalue_reference_t
<From>
(
)
such that the expression fun() is equality-preserving
- Either
To
is neither an object type nor a reference-to-object type, or- static_cast<To>(fun()) is equal to [ ] ( ) - > To { return fun( ) ; } ( )
- One of the following is true:
- std::add_rvalue_reference_t<From>
- std::add_rvalue_reference_t<From> is an rvalue reference to a non-const-qualified type, and the resulting state of the object referenced by fun()
- the object referred to by fun() is not modified by either expression above.
Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving
References
- C++23 standard (ISO/IEC 14882:2024):
- 18.4.4 Concept
convertible_to
[concept.convertible]
- 18.4.4 Concept
- C++20 standard (ISO/IEC 14882:2020):
- 18.4.4 Concept
convertible_to
[concept.convertible]
- 18.4.4 Concept
See also
(C++11)(C++20)
|
checks if a type can be converted to the other type (class template) |