Стандарт C++ запрещает объявления сторонних специализаций. (§14.5.3/8):Почему стандарт запрещает объявления товарищей о частичной специализации?
В декларациях сторон не декларируются частичные специализации. [Пример:
template<class T> class A { };
class X {
template <class T> friend class A<T*>; //error
};
--end пример]
Другие вопросы, например, this one, получили ответы, которые ссылаются на этот запрет, но я хотел бы знать обоснование . Я не вижу его и не могу найти его с помощью моей любимой поисковой системы. I может найти, однако, что он вернется к стандарту C++ 98, поэтому предположительно обоснование достаточно просто и понятно. Может кто-нибудь объяснить это мне?
Как это «неконструктивно»? –
@LuchianGrigore: грубое предположение: это вопрос о возможных мнениях – PlasmaHH
@PlasmaHH, если не ответит кто-то, кто действительно знает причину (как и большинство вопросов) :) –