std::experimental::ranges::ConvertibleTo
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/concepts>
|
||
| template <class From, class To> concept bool ConvertibleTo = |
(ranges TS) | |
The concept ConvertibleTo<From, To> specifies that an expression of the type and value category specified by From can be implicitly and explicitly converted to the type To, and the two forms of conversion are equivalent.
Specifically, ConvertibleTo<From, To> is satisfied only if, given the invented function
To test(From (&f)()) { return f(); } and a function F of type From () such that the expression F() is equality-preserving,
- Either
-
Tois neither an object type nor a reference-to-object type, or - static_cast<To>(f()) is equal to
test(f), and
-
- One of the following is true:
-
Fromis not a reference-to-object type, or -
Fromis an rvalue reference to a non-const-qualified type, and the resulting state of the object referenced by f() is valid but unspecified after either expression above; or - the object referred to by
f()is not modified by either expression above.
-
There need not be any subsumption relationship between ConvertibleTo<From, To> and std::is_convertible<From, To>::value.
See also
| (C++11) |
checks if a type can be converted to the other type (class template) |