Lines Matching defs:Trivial
22 // - X is a union-like class that has a variant member with a non-trivial
24 union Deleted1a { UserProvidedDefCtor u; }; // expected-note {{default constructor of 'Deleted1a' is implicitly deleted because variant field 'u' has a non-trivial default constructor}}
80 const UserProvidedDefCtor c; // expected-note {{because variant field 'c' has a non-trivial default constructor}}
145 class Trivial { static const int n = 42; };
146 static_assert(__has_trivial_constructor(Trivial), "Trivial is nontrivial");
148 // A default constructor is trivial if it is not user-provided and if:
150 static_assert(!__has_trivial_constructor(NonTrivialDefCtor1), "NonTrivialDefCtor1 is trivial");
162 ASSERT_NONTRIVIAL(NonTrivialDefCtor3, : virtual Trivial, )
167 // - all the direct base classes of its class have trivial default constructors, and
171 // has a trivial default constructor.
185 // Otherwise, the default constructor is non-trivial.
188 static_assert(__has_trivial_constructor(Trivial2), "Trivial2 is trivial");
191 static_assert(__has_trivial_constructor(Trivial3), "Trivial3 is trivial");
194 static_assert(__has_trivial_constructor(Trivial4<int>), "Trivial4 is trivial");
197 static_assert(__has_trivial_constructor(Trivial5<int>), "Trivial5 is trivial");
201 // member is trivial before we return to parsing the containing class.