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
-
To
is 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:
-
From
is not a reference-to-object type, or -
From
is 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) |