2012-02-22 6 views
-1

テンプレートとその部分的な特殊化をすべて仲間にするのに問題があります。これを達成するための具体的なやり方や、私が気づいていない何らかの制限はありますか?C++のテンプレート、部分的な専門化、友人

+1

はあなたが解決しようとしているいくつかのコード(縮小テストケース)を提供することができますか? –

+0

あなたの質問は非常に曖昧な傾向があります。もっと具体的な質問をしてみてください。 Stack Overflowはディスカッションフォーラムではありません。ありがとう –

答えて

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.

関連する問題