Boost C++ 库

……是世界上最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

prefer - Boost C++ 函数库
PrevUpHomeNext

尝试将某个属性应用到对象的自定义点。

constexpr unspecified prefer = unspecified;

名称 prefer 表示一个自定义点对象。表达式 boost::asio::prefer(E, P0, Pn...) 对于某些子表达式 EP0,其中 Pn... 表示 N 个子表达式(其中 N 为 0 或更多,类型为 T = decay_t<decltype(E)>Prop0 = decay_t<decltype(P0)>)在表达式上等价于

  • 如果 is_applicable_property_v<T, Prop0> && Prop0::is_preferable 不是值为 true 的良构常量表达式,则 boost::asio::prefer(E, P0, Pn...) 是格式错误的。
  • 否则,如果 N == 0 并且表达式 Prop0::template static_query_v<T> == Prop0::value() 是值为 true 的良构常量表达式,则为 E
  • 否则,如果 N == 0 并且表达式 (E).require(P0) 是有效表达式,则为 (E).require(P0)
  • 否则,如果 N == 0 并且表达式 require(E, P0) 在不包含 require 自定义点对象声明的上下文中执行重载解析后是有效表达式,则为 require(E, P0)
  • 否则,如果 N == 0 并且表达式 (E).prefer(P0) 是有效表达式,则为 (E).prefer(P0)
  • 否则,如果 N == 0 并且表达式 prefer(E, P0) 在不包含 prefer 自定义点对象声明的上下文中执行重载解析后是有效表达式,则为 prefer(E, P0)
  • 否则,如果 N == 0,则为 E
  • 否则,如果 N > 0 并且表达式 boost::asio::prefer(boost::asio::prefer(E, P0), Pn...) 是有效表达式,则为 boost::asio::prefer(boost::asio::prefer(E, P0), Pn...)
  • 否则,boost::asio::prefer(E, P0, Pn...) 是格式错误的。
要求

头文件: boost/asio/prefer.hpp

便捷头文件: boost/asio.hpp


PrevUpHomeNext