memfriend17.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 47 行

C
47
字号
// { dg-do compile }// Origin: Giovanni Bajo <giovannibajo@libero.it>// PR c++/13495: Nested class as template friend.template<typename T>class A{public:    class B    {        void func1(void);        void func2(void);    };};template<typename Q>class F1{    friend class A<Q>::B;    enum { foo = 0 };	// { dg-error "private" }};template<typename Q>class F2{    template<typename T>    friend class A<T>::B;    enum { foo = 0 };};template <typename T>void A<T>::B::func1(void){    (void)F1<T>::foo;    (void)F2<T>::foo;}template <typename T>void A<T>::B::func2(void){    (void)F1<T*>::foo;	// { dg-error "context" }    (void)F2<T*>::foo;}template class A<int>;	// { dg-error "instantiated" }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?