Здравствуйте Dima2, Вы писали:
D>Как объявить шаблон другом класса.
D>Вроде того
D>D>class X
D>{
D> template<class T> friend struct A;
D>};
D>template<class T>
D>struct A{};
D>
Ну вроде как вот так:
template<class T>
struct A{};
class X
{
template<class T> friend struct A;
};
тока VC 60 не скомпилялось, а BC 5.2 — ОК,
и в стандарте есть упоминание (14.5.3.4),
даже пример приводится:
class X
{
template<class T> friend struct A;
class Y {};
}
template<class T> struct A { X::Y ab; }
так что у тебя всё ок, если только это не нужно писать на VC 6.0