A customisation point that applies a concept-enforcing property to an object.
constexpr unspecified require_concept = unspecified;
The name require_concept
denotes a customization point object. The expression asio::require_concept(E,
P)
for some subexpressions E
and P
(with types T = decay_t<decltype(E)>
and Prop =
decay_t<decltype(P)>
)
is expression-equivalent to:
is_applicable_property_v<T, Prop> &&
Prop::is_requirable_concept
is not a well-formed
constant expression with value true
,
asio::require_concept(E, P)
is ill-formed.
E
if the expression
Prop::template static_query_v<T> == Prop::value()
is a well-formed constant expression with value true
.
(E).require_concept(P)
if the expression (E).require_concept(P)
is well-formed.
require_concept(E, P)
if the expression require_concept(E, P)
is a valid expression with overload
resolution performed in a context that does not include the declaration
of the require_concept
customization point object.
asio::require_concept(E, P)
is ill-formed.
Header: asio/require_concept.hpp
Convenience header: asio.hpp