Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
"nome" : declaração de modelo de amigo inválido
Observações
É inválido declarar um amigo de uma classe de especialização de modelo. Não é possível declarar uma especialização explícita ou parcial de um modelo de classe e, na mesma declaração, declarar um amigo dessa especialização. O espaço reservado para nome identifica a declaração inválida.
Para corrigir este erro
Não declare amigo de uma especialização de modelo de classe.
Se apropriado para sua inscrição, declare um amigo do modelo de classe ou declare um amigo de uma especialização parcial ou explícita específica.
Example
O exemplo de código a seguir falha porque declara um amigo de uma especialização parcial de um modelo de classe.
// c3772.cpp
// compile with: /c
// A class template.
template<class T> class A {};
// A partial specialization of the class template.
template<class T> class A<T*> {};
// An explicit specialization.
template<> class A<char>;
class X {
// Invalid declaration of a friend of a partial specialization.
template<class T> friend class A<T*>; // C3772
// Instead, if it is appropriate for your application, declare a
// friend of the class template. Consequently, all specializations
// of the class template are friends:
// template<class T> friend class A;
// Or declare a friend of a particular partial specialization:
// friend class A<int*>;
// Or declare a friend of a particular explicit specialization:
// friend class A<char>;
};