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

一个网站怎么做软件好用南通网站建设哪家好

一个网站怎么做软件好用,南通网站建设哪家好,云南省建设厅网站舉報,如何制作百度网页类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

类型特性


类型特性定义一个编译时基于模板的结构,以查询或修改类型的属性。

试图特化定义于 <type_traits> 头文件的模板导致未定义行为,除了 std::common_type 可依照其所描述特化。

定义于<type_traits>头文件的模板可以用不完整类型实例化,除非另外有指定,尽管通常禁止以不完整类型实例化标准库模板。

类型属性

继承自 std::integral_constant

成员常量

value

[静态]

T 为抽象类类型则为 true ,否则为 false
(公开静态成员常量)
成员函数

operator bool

转换对象为 bool ,返回 value
(公开成员函数)

operator()

(C++14)

返回 value
(公开成员函数)
成员类型
类型定义
value_typebool
typestd::integral_constant<bool, value>

检查类型是否为抽象类类型

std::is_abstract

template< class T >
struct is_abstract;

(C++11 起)

T 为抽象类(即声明或继承至少一个纯虚函数的非联合类类型),则提供等于 true 的成员常量 value 。对于其他类型, value 为 false 。

T 是非联合类类型,则 T 应为完整类型;否则行为未定义。

模板形参
T-要检查的类型
辅助变量模板

template< class T >
inline constexpr bool is_abstract_v = is_abstract<T>::value;

(C++17 起)
 调用示例
#include <iostream>
#include <type_traits>struct A
{int m;
};struct B
{virtual void foo();
};struct C
{virtual void foo() = 0;
};struct D : C {};int main()
{std::cout << std::boolalpha;std::cout << "std::is_abstract<int>::value:         "<< std::is_abstract<int>::value << std::endl;std::cout << "std::is_abstract<double>::value:      "<< std::is_abstract<double>::value << std::endl;std::cout << "std::is_abstract<std::string>::value: "<< std::is_abstract<std::string>::value << std::endl;std::cout << "std::is_abstract<A>::value:           "<< std::is_abstract<A>::value << std::endl;std::cout << "std::is_abstract<B>::value:           "<< std::is_abstract<B>::value << std::endl;std::cout << "std::is_abstract<C>::value:           "<< std::is_abstract<C>::value << std::endl;std::cout << "std::is_abstract<D>::value:           "<< std::is_abstract<D>::value << std::endl;return 0;
}
输出

检查类型是否为有符号算术类型

std::is_signed

template< class T >
struct is_signed;

(C++11 起)

T 是算术类型且 T(-1) < T(0) ,则提供等于 true 的成员常量 value :这对于浮点类型和有符号整数类型产生 true ,并对无符号整数类型和 bool 类型产生 false

对于任何其他类型, value 为 false 。

模板形参
T-要检查的类型
辅助变量模板

template< class T >
inline constexpr bool is_signed_v = is_signed<T>::value;

(C++17 起)
可能的实现
namespace detail {
template<typename T,bool = std::is_arithmetic<T>::value>
struct is_signed : std::integral_constant<bool, T(-1) < T(0)> {};template<typename T>
struct is_signed<T,false> : std::false_type {};
} // namespace detailtemplate<typename T>
struct is_signed : detail::is_signed<T>::type {};
调用示例
#include <iostream>
#include <type_traits>class A {};
enum B : int {};
enum class C : int {};int main()
{std::cout << std::boolalpha;std::cout << "std::is_signed<A>::value:             "<< std::is_signed<A>::value << std::endl;std::cout << "std::is_signed<std::string>::value:   "<< std::is_signed<std::string>::value << std::endl;std::cout << "std::is_signed<float>::value:         "<< std::is_signed<float>::value << std::endl;std::cout << "std::is_signed<signed int>::value:    "<< std::is_signed<signed int>::value << std::endl;std::cout << "std::is_signed<unsigned int>::value:  "<< std::is_signed<unsigned int>::value << std::endl;std::cout << "std::is_signed<B>::value:             "<< std::is_signed<B>::value << std::endl;std::cout << "std::is_signed<C>::value:             "<< std::is_signed<C>::value << std::endl;// 简短的形式:std::cout << "std::is_signed<signed int>():         "<< std::is_signed<signed int>() << std::endl;std::cout << "std::is_signed<unsigned int>():       "<< std::is_signed<unsigned int>() << std::endl;return 0;
}
输出

检查类型是否为无符号算术类型

std::is_unsigned

template< class T >
struct is_unsigned;

(C++11 起)

T 是算术类型且 T(0) < T(-1) ,则提供等于 true 的成员常量 value :这对无符号整数类型和 bool 类型产生 true 并对有符号整数类型和浮点类型产生 false

对于任何其他类型, value 为 false 。

模板形参
T-要检查的类型
辅助变量模板

template< class T >
inline constexpr bool is_unsigned_v = is_unsigned<T>::value;

(C++17 起)
 可能的实现
namespace detail {
template<typename T,bool = std::is_arithmetic<T>::value>
struct is_unsigned : std::integral_constant<bool, T(0) < T(-1)> {};template<typename T>
struct is_unsigned<T,false> : std::false_type {};
} // namespace detailtemplate<typename T>
struct is_unsigned : detail::is_unsigned<T>::type {};
调用示例
#include <iostream>
#include <type_traits>class A {};
enum B : int {};
enum class C : int {};int main()
{std::cout << std::boolalpha;std::cout << "std::is_unsigned<A>::value:             "<< std::is_unsigned<A>::value << std::endl;std::cout << "std::is_unsigned<std::string>::value:   "<< std::is_unsigned<std::string>::value << std::endl;std::cout << "std::is_unsigned<float>::value:         "<< std::is_unsigned<float>::value << std::endl;std::cout << "std::is_unsigned<signed int>::value:    "<< std::is_unsigned<signed int>::value << std::endl;std::cout << "std::is_unsigned<unsigned int>::value:  "<< std::is_unsigned<unsigned int>::value << std::endl;std::cout << "std::is_unsigned<B>::value:             "<< std::is_unsigned<B>::value << std::endl;std::cout << "std::is_unsigned<C>::value:             "<< std::is_unsigned<C>::value << std::endl;// 简短的形式:std::cout << "std::is_unsigned<signed int>():         "<< std::is_unsigned<signed int>() << std::endl;std::cout << "std::is_unsigned<unsigned int>():       "<< std::is_unsigned<unsigned int>() << std::endl;return 0;
}
输出

http://www.yayakq.cn/news/14507/

相关文章:

  • 那个网站做排列五头比较准wordpress免费插件下载地址
  • 企飞互联网站建设网络公司七牛云最新消息
  • 做ppt兼职网站有哪些用书籍上的文章做网站更新
  • 住房和规划建设局网站百度网站认证v1
  • 家居企业网站建设方案网络营销工作内容是什么
  • 做网站 的主要收获自适应网站的代表
  • 温州网站制作推广网站开发liucheng
  • 网站开发与系统开发网络系统架构图
  • 网站制作的收费标准冯提莫斗鱼前在哪个网站做直播
  • 怎样做网站的轮播图片qq在线网站代码生成
  • 网站建立的链接不安全怎么解决漂亮企业网站源码
  • 常州网站建设软件凡科做的微网站怎样连接公众号
  • 淘宝不能开网站建设店铺吗云主机服务器租用
  • 建设厅电工证查询网站官方网网页源代码查看答案
  • 贺州招聘网站建设找室内设计师上哪个网站
  • 重启 iis 中的网站企业网站建设与推广方案实例
  • 山东潍坊建设银行招聘网站深圳搭建网站公司
  • 永州网站建设网站重庆网站设计公司排名
  • 手机套 东莞网站建设东莞网站建设化工
  • 网站建设办什么手续沧州建设银行招聘网站
  • 服装企业网站内容规划建设银行深分行圳招聘网站
  • 专门做品牌网站设计服务网站开发需要什么专业学生
  • 网站建设基本流程图传奇游戏排行榜前十名
  • 生成链接的网站wordpress代刷网主题
  • 服装网站建设方案ppt江西住房和城乡建设网站
  • 香格里拉网站建设宁波公司注册流程
  • 外贸网站商城建设本地app开发公司电话
  • 如何做自己的淘宝客网站简约式网站
  • 南宁网站建设找哪家公司绵阳 网站 建设
  • 做得好的营销网站网页设计作业怎么做