У меня проблемы с получением класса, чтобы он дружил с шаблоном и всеми его частичными специализациями.Есть ли какой-то конкретный прием для достижения этого или какого-то ограничения, о котором я не знаю?
class Y{ template<class T> friend class X; // friends all instantiation forms of X void a_private_func() const{} }; template<class T> class X{ public: void f(Y const& y){ y.a_private_func(); } }; template<class T> class X<T*>{ public: void g(Y const& y){ y.a_private_func(); } };
Живой пример на Ideone.