1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// PR c++/27339 class A { private: enum private_enum {a}; template<A::private_enum v> // OK struct B { void bm(); }; public: void am() { B<a> instance; //OK instance.bm(); } }; template<A::private_enum v> // FAIL void A::B<v>::bm(){}