#c #templates #c 17 #non-type-template-parameter
#c #шаблоны #c 17 #не-тип-шаблон-параметр
Вопрос:
В приведенном ниже коде я хотел бы, чтобы это A<N>
было другом A<M>
для любой пары M
и N
. Возможно ли это? Ниже вы можете найти мою попытку, которая не компилируется.
template <int N> class A {
int x = N;
template<int M> friend A<M>;
public:
template<int M> void copy(const A<M>amp; a) {
x = a.x;
}
};
void foo() {
A<2> a2{};
A<3> a3{};
a2.copy(a3);
}
Ответ №1:
ДА. Правильный синтаксис
template<int M> friend class A;