Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"name" : ogiltig deklaration av vänmall
Anmärkningar
Det är ogiltigt att deklarera en vänfunktion till specialisering av en klassmall. Man kan inte deklarera en explicit eller partiell specialisering av en klassmall och samtidigt deklarera en vän till den specialiseringen i samma deklaration. Namnplatshållaren identifierar den ogiltiga deklarationen.
Så här åtgärdar du det här felet
Deklarera inte en vän till en klassmallsspecialisering.
Om det är lämpligt för ditt program, deklarerar du en vän till klassmallen eller deklarerar en vän till en viss partiell eller explicit specialisering.
Example
Följande kodexempel misslyckas eftersom det deklarerar en vän till en partiell specialisering av en klassmall.
// 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>;
};