1 // PR c++/81349 2 // { dg-do compile { target c++17_only } } 3 4 #include <type_traits> 5 6 struct A { 7 A (int) = delete; 8 }; 9 10 struct B { 11 template <typename T> 12 B (T) = delete; 13 }; 14 15 template <typename U> 16 struct C { 17 C (U) = delete; 18 }; 19 20 template <typename U> 21 struct D { 22 template <typename T> 23 D (T, U) = delete; 24 }; 25 26 static_assert (std::is_aggregate_v<A>); 27 static_assert (std::is_aggregate_v<B>); 28 static_assert (std::is_aggregate_v<C<int>>); 29 static_assert (std::is_aggregate_v<D<int>>); 30