當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ is_trivial用法及代碼示例


標識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


相關用法


注:本文由純淨天空篩選整理自 is_trivial function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。