标识T是否为平凡类型的特质类。普通类型是一种类型,该类型的存储是连续的(普通可复制),并且仅支持静态默认初始化(普通默认可构造),无论该类型是否为cv限定的。它包括标量类型,平凡类和任何此类类型的数组。
琐碎的类是一类(用class,struct或union定义),既可以琐碎默认地构造,又可以琐碎地复制,这意味着:
- 它使用隐式定义的默认值,复制和移动构造函数,复制和移动分配以及析构函数。
- 它没有虚拟成员。
- 它没有带有大括号或相等初始化程序的非静态数据成员。
- 它的基类和非静态数据成员(如果有的话)本身也是琐碎的类型。
is_trivial继承自integer_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
#include //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::value << endl;
std::cout << "B: " << std::is_trivial::value << endl;
std::cout << "C: " << std::is_trivial::value << endl;
std::cout << "D: " << std::is_trivial::value << endl;
return 0;
}
输出:
A: true
B: false
C: false
D: false
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。