A trivially copy constructible type is a type which can be trivially constructed from a value or reference of the same type. This includes scalar types, trivially copy constructible classes and arrays of such types.

A trivially copy constructible class is a class (defined with class, struct or union) that:

uses the implicitly defined copy constructor.

has no virtual members.

its base class and non-static data members (if any) are themselves also trivially copy constructible types.