2012-02-22 2 views
-1

클래스를 템플릿 및 모든 부분 특수화로 친구가되게하는 데 어려움이 있습니다. 이 문제를 해결하기위한 특정 트릭이나 내가 모르는 일부 제한 사항이 있습니까?C++ 템플릿, 부분 전문화 및 친구

+1

당신은 당신이 해결하려고하는 몇 가지 코드 (감소 된 테스트 케이스)를 제공 할 수 있습니까? –

+0

귀하의 질문은 매우 모호한 경향이 있습니다. 더 구체적인 질문을하십시오. 스택 오버플로는 토론 포럼이 아닙니다. 감사 –

답변

2
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(); } 
}; 

Live example on Ideone.

관련 문제