当前位置: 首页 > news >正文

初级程序员与网站开发sap.net网站开发

初级程序员与网站开发,sap.net网站开发,校园网站制作模板,oracle网站开发类型特性 类型特性定义一个编译时基于模板的结构#xff0c;以查询或修改类型的属性。 试图特化定义于 type_traits 头文件的模板导致未定义行为#xff0c;除了 std::common_type 可依照其所描述特化。 定义于type_traits头文件的模板可以用不完整类型实例…类型特性 类型特性定义一个编译时基于模板的结构以查询或修改类型的属性。 试图特化定义于 type_traits 头文件的模板导致未定义行为除了 std::common_type 可依照其所描述特化。 定义于type_traits头文件的模板可以用不完整类型实例化除非另外有指定尽管通常禁止以不完整类型实例化标准库模板。 类型属性 定义于头文件 type_traits 基础类型类别 继承自 std::integral_constant 成员常量 value [静态] 若 T 为联合体类型则为 true 否则为 false (公开静态成员常量) 成员函数 operator bool 转换对象为 bool 返回 value (公开成员函数) operator() (C14) 返回 value (公开成员函数) 成员类型 类型定义value_typebooltypestd::integral_constantbool, value 检查类型是否为联合体类型 std::is_union template class T struct is_union; (C11 起) 检查 T 是否为联合体类型。若 T 为联合体类型则提供等于 true 的成员常量 value 。否则 value 等于 false 。 模板形参 T-要检查的类型 辅助变量模板 template class T inline constexpr bool is_union_v is_unionT::value; (C17 起) 检查类型是否非联合类类型 std::is_class template class T struct is_class; (C11 起) 检查 T 是否为非联合类类型。若 T 为类类型但非联合体则提供等于 true 的成员常量 value 。否则 value 等于 false 。 注意以 struct 关键词声明的类型是类故此特性对“结构体”为 true 。 模板形参 T-要检查的类型 辅助变量模板 template class T inline constexpr bool is_class_v is_classT::value; 可能的实现 namespace detail {template class T char test(int T::*);struct two { char c[2]; };template class T two test(...); }template class T struct is_class : std::integral_constantbool, sizeof(detail::testT(0))1 !std::is_unionT::value {}; 检查是否为函数类型 std::is_function template class T struct is_function; (C11 起) 检查 T 是否为函数类型。如 std::function 、 lambda 、有重载 operator() 的类和指向函数指针不是函数类型。若 T 为函数类型则提供等于 true 的成员常量 value 。否则 value 等于 false 。 模板形参 T-要检查的类型 辅助变量模板 template class T inline constexpr bool is_function_v is_functionT::value; (C17 起) 可能的实现 // 初等模板 templateclass struct is_function : std::false_type { };// 对常规函数的特化 templateclass Ret, class... Args struct is_functionRet(Args...) : std::true_type {};// 对变参数函数如 std::printf 的特化 templateclass Ret, class... Args struct is_functionRet(Args......) : std::true_type {};// 对拥有 cv 限定符的函数类型的特化 templateclass Ret, class... Args struct is_functionRet(Args...) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile : std::true_type {};// 对拥有引用限定符的函数类型的特化 templateclass Ret, class... Args struct is_functionRet(Args...) : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile : std::true_type {};// 对所有以上的 noexcept 版本的特化 C17 及之后templateclass Ret, class... Args struct is_functionRet(Args...) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args...) const volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) volatile noexcept : std::true_type {}; templateclass Ret, class... Args struct is_functionRet(Args......) const volatile noexcept : std::true_type {}; 调用示例 #include iostream #include type_traitsstruct A {};typedef union {int a;float b; } B;struct C {B d; };enum E {};enum class Ec : int {};struct D {int fun() const; };templatetypename struct PM_traits {};templateclass T, class U struct PM_traitsU T::* {using member_type U; };int f();int main() {std::cout std::boolalpha;std::cout std::is_unionA::value: std::is_unionA::value std::endl;std::cout std::is_unionB::value: std::is_unionB::value std::endl;std::cout std::is_unionC::value: std::is_unionC::value std::endl;std::cout std::is_unionint::value: std::is_unionint::value std::endl;std::cout std::is_unionfloat::value: std::is_unionfloat::value std::endl;std::cout std::endl;std::cout std::is_classA::value: std::is_classA::value std::endl;std::cout std::is_classB::value: std::is_classB::value std::endl;std::cout std::is_classC::value: std::is_classC::value std::endl;std::cout std::is_classint::value: std::is_classint::value std::endl;std::cout std::is_classfloat::value: std::is_classfloat::value std::endl;std::cout std::endl;std::cout std::is_functionA::value: std::is_functionA::value std::endl;std::cout std::is_functionint(int)::value: std::is_functionint(int)::value std::endl;std::cout std::is_functiondecltype(f)::value: std::is_functiondecltype(f)::value std::endl;std::cout std::is_functionint::value: std::is_functionint::value std::endl;using T PM_traitsdecltype(D::fun)::member_type; // T 为 int() conststd::cout std::is_functionT::value: std::is_functionT::value std::endl;std::cout std::endl;return 0; } 输出
http://www.sadfv.cn/news/194826/

相关文章:

  • 征集二级网站建设意见 通知漯河网站建设电话
  • 正规的合肥网站建设价格大型网站 jquery
  • 为什么无法登录建设银行网站网页版梦幻西游手游官网
  • 打开网站 输入内容存在危险字符wordpress 整合php
  • 网站标题 没有排名seo网站沙盒期
  • 淄博市沂源县城乡建设局网站把wordpress变成图床
  • 东营北京网站建设网站模
  • 上海网站建设q.479185700棒app广告联盟
  • 百度网站域名注册怎么做网站站内优化
  • 什么网站不能备案搜索引擎优化的定义
  • 中亿丰建设集团股份有限公司网站品牌购物平台有哪些
  • 浙江宏兴建设有限公司网站建设工程交易中心网站
  • 网站建设策划案百度官网推广平台
  • 聊城网站制作信息清河网站建设费用
  • 厦门 网站设计如何做下载网站赚钱
  • 用dw6做网站首页电商怎么做数据分析
  • wwr下载建设网站郑州主动营销网站
  • 购物网站素材国外云服务器厂商
  • 写资料的网站有哪些erp软件是什么软件
  • 莆田建设项目环境网站奉化市建设局网站
  • 出名的建站网站个人微信公众号注册
  • 万州做网站的公司wordpress wp-comments-post.php
  • 当当网的网站建设目标是wordpress主页不显示图片
  • 网站制作 呼和浩特wordpress竖版图片
  • 微购物网站建设咨询公司税率是多少
  • phpcms v9网站建设入门西安知名网站建设公司排名
  • 网站后台管理系统 静态页面wordpress镜像教程
  • 建设部建造师强制注销网站绍兴企业网站建设
  • c语言怎么做网站深圳老牌房企被曝全员解散
  • 2017网站开发发展前景如何提高网站排名的方法