Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/memfriend17.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { 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-message "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-message "required" }