2 // { dg-do compile { target c++11 } }
5 template <typename = void> struct A;
7 template <typename, typename, typename = A<>> class C;
8 template <typename, typename> struct D;
9 template <typename T, typename U, typename V, typename, typename, typename W>
14 template <typename P, typename R, typename S, typename Q>
15 bool operator!= (E<P, U, V, R, S, Q>);
17 template <typename T, typename U, typename>
21 using I = E<G, T, U, G, H, H &>;
22 class G : public I {};
26 template <typename T, typename U, typename V> struct C : F<T, U, V> {
33 void foo () { for (auto & [ a ] : m) {} } // { dg-error "incomplete type" }
34 C<K, B> m; // { dg-warning "only available with" "" { target c++14_down } .-1 }