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