C++標準では、部分的な特殊化のフレンド宣言が禁止されています。 (§14.5.3/ 8):標準では、部分的なスペシャライゼーションのフレンド宣言を禁止するのはなぜですか?
フレンド宣言は部分的なスペシャライゼーションを宣言してはならない。 [例:
template<class T> class A { };
class X {
template <class T> friend class A<T*>; //error
};
--end例]
他の質問、例えばthis one、 はこの禁止を呼び起こす回答を受けましたが、 の根拠を知りたいと思います。私はそれを見ないし、私のお気に入りの検索エンジンでそれを見つけることができません。私は しかし、それはすぐに戻ってC++ 98標準に行くので、おそらく の根拠はかなり基本的かつ明確です。誰かが私にそれを説明することはできますか?ここで
これはどのように「建設的ではないのですか? –
@LuchianGrigore:おおまかな推測:考えられることを尋ねるのは – PlasmaHH
@PlasmaHH実際に理由を知っている人(ほとんどの質問のように)から回答されない限り:) –