Viewing file: decomp35.C (966 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// PR c++/83958 // { dg-do compile { target c++11 } } // { dg-options "" }
template <typename = void> struct A; class B; template <typename, typename, typename = A<>> class C; template <typename, typename> struct D; template <typename T, typename U, typename V, typename, typename, typename W> struct E { using X = W; X operator* (); T operator++ (); template <typename P, typename R, typename S, typename Q> bool operator!= (E<P, U, V, R, S, Q>); }; template <typename T, typename U, typename> struct F { class G; using H = D<T, U>; using I = E<G, T, U, G, H, H &>; class G : public I {}; G begin (); G end (); }; template <typename T, typename U, typename V> struct C : F<T, U, V> { using J = F<T, U, V>; using J::begin; using J::end; }; using K = class L; struct M { void foo () { for (auto & [ a ] : m) {} } // { dg-error "incomplete type" } C<K, B> m; // { dg-warning "only available with" "" { target c++14_down } .-1 } };
|