c++/4403: [2003-01-11]incorrect class becomes a friend in template

Giovanni Bajo giovannibajo@libero.it
Wed Apr 30 21:43:00 GMT 2003


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4403

For easier reference, a minimal snippet showing this is:
--------------------------------
template <typename T>
struct A
{
    struct F;
};

template <typename T>
struct B : A<T>
{
    friend struct F;

private:
    int priv;
};

struct F
{
    void func(void)
    {
        B<int> b;
        b.priv = 0;
    }
};
--------------------------------
pr4403.cpp: In member function `void F::func()':
pr4403.cpp:13: error: `int B<int>::priv' is private
pr4403.cpp:21: error: within this context

Reconfirmed on any GCC version up to mainline 20030430.

Giovanni Bajo



More information about the Gcc-bugs mailing list