Delen via


Compilerfout C3772

"name" : ongeldige vriendsjabloondeclaratie

Opmerkingen

Het is ongeldig om een vriend van een klassesjabloonspecialisatie te declareren. U kunt geen expliciete of gedeeltelijke specialisatie van een klassesjabloon declareren en in dezelfde instructie een vriend van die specialisatie declareren. De naam tijdelijke aanduiding identificeert de ongeldige declaratie.

Deze fout corrigeren

  • Declareer geen vriend van een specialisatie van een klassjabloon.

  • Indien geschikt voor uw toepassing, declareert u een vriend van de sjabloonklasse of een specifieke gedeeltelijke of expliciete specialisatie.

Example

Het volgende codevoorbeeld mislukt omdat het een vriend van een gedeeltelijke specialisatie van een klassesjabloon declareert.

// 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>;
};

Zie ook

Sjablonen
Sjabloonspecialisatie