标识T是否为平凡类型的特质类。普通类型是一种类型,其存储是连续的(普通可复制),并且仅支持静态默认初始化(普通默认可构造),无论是否支持cv-qualified。它包括标量类型,平凡类和任何此类类型的数组。
琐碎的类是一类(用class,struct或union定义),既可以琐碎默认地构造,又可以琐碎地复制,这意味着:
- 它使用隐式定义的默认值,复制和移动构造函数,复制和移动分配以及析构函数。
- 它没有虚拟成员。
- 它没有带有大括号或相等初始化程序的非静态数据成员。
- 它的基类和非静态数据成员(如果有的话)本身也是琐碎的类型。
is_trivial从integral_constant继承为true_type或false_type,具体取决于T是否为平凡类型
用法:
template struct is_trivial;
例:
std::is_trivial::value Here A is a class which has been passed as a parameter to the function is_trivial and it will return a value of integral constant type bool i.e. either true or false
// CPP program to illustrate
// is_trivial function
#include <iostream>
#include <type_traits> //library containing is_trivial function
using namespace std;
class A {};
class B { B() {} };
class C:B {};
class D { virtual void fn() {} };
int main() {
std::cout << std::boolalpha; //Returns value in boolean type
std::cout << "A:" << std::is_trivial<A>::value << endl;
std::cout << "B:" << std::is_trivial<B>::value << endl;
std::cout << "C:" << std::is_trivial<C>::value << endl;
std::cout << "D:" << std::is_trivial<D>::value << endl;
return 0;
}
输出:
A:true B:false C:false D:false
相关用法
- C++ log()用法及代码示例
- C++ div()用法及代码示例
- C++ fma()用法及代码示例
- C++ imag()用法及代码示例
- C++ wcsncpy()用法及代码示例
- C++ wcstok()用法及代码示例
- C++ map key_comp()用法及代码示例
- C++ wmemmove()用法及代码示例
- C++ wcsstr()用法及代码示例
- C++ map rbegin()用法及代码示例
注:本文由纯净天空筛选整理自 is_trivial function in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。