![]() |
Home | Libraries | People | FAQ | More |
A customisation point that applies a concept-preserving property to an object.
constexpr unspecified require = unspecified;
The name require denotes a customisation point object. The expression
boost::asio::require(E, P0, Pn...) for some subexpressions
E and P0, and where Pn... represents
N subexpressions (where N is 0 or more, and with
types T = decay_t<decltype(E)> and Prop0 = decay_t<decltype(P0)>)
is expression-equivalent to:
is_applicable_property_v<T, Prop0> && Prop0::is_requirable
is not a well-formed constant expression with value true,
boost::asio::require(E, P0, Pn...) is ill-formed.
E if N == 0 and the expression
Prop0::template static_query_v<T> == Prop0::value()
is a well-formed constant expression with value true.
(E).require(P0) if N == 0 and the
expression (E).require(P0) is a valid expression.
require(E, P0) if N == 0 and the
expression require(E, P0) is a valid expression with overload
resolution performed in a context that does not include the declaration
of the require customization point object.
boost::asio::require(boost::asio::require(E, P0), Pn...)
if N > 0 and the expression boost::asio::require(boost::asio::require(E,
P0), Pn...) is a valid expression.
boost::asio::require(E, P0, Pn...) is ill-formed.
Header: boost/asio/require.hpp
Convenience header: boost/asio.hpp