view gcc/testsuite/g++.dg/template/incomplete1.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do compile }
// Origin: Ivan Godard <igodard at pacbell dot net>
// PR c++/17447: Detect parameters of dependent types even in templates

struct B;   // { dg-message "forward declaration" }
template<typename T> struct A {

    friend A& operator <<(A& a, B b) { return a; } // { dg-error "incomplete" }
    friend A& operator <<(A& a, T b) { return a; }

    void foo1(B b) {}   // { dg-error "incomplete" }
    void foo1a(T b) {}

    B foo2(void) {}  // { dg-error "incomplete" }
    T foo2a(void) {}

    void foo3(B b);
};