is_trivial function in C++

Trait class that identifies whether T is a trivial type. A trivial type is a type whose storage is contiguous (trivially copyable) and which only supports static default initialization (trivially default constructible), either cv-qualified or not. It includes scalar types, trivial classes and arrays of any such types.

A trivial class is a class (defined with class, struct or union) that is both trivially default constructible and trivially copyable, which implies that:

  • It uses the implicitly defined default, copy and move constructors, copy and move assignments, and destructor.
  • It has no virtual members.
  • It has no non-static data members with brace- or equal- initializers.
  • Its base class and non-static data members (if any) are themselves also trivial types.

is_trivial inherits from integral_constant as being either true_type or false_type, depending on whether T is a trivial type

Syntax :

template  struct is_trivial;


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

This article is contributed by Mohak Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at to report any issue with the above content.