Partager via


Erreur du compilateur C2179

'type' : un argument d’attribut ne peut pas utiliser les paramètres de type

Un paramètre de type générique est résolu au moment de l’exécution. Toutefois, un paramètre d’attribut doit être résolu au moment de la compilation. Par conséquent, vous ne pouvez pas utiliser un paramètre de type générique comme argument pour un attribut.

Exemple

L’exemple suivant génère l’erreur C2179.

// C2179.cpp
// compile with: /clr
using namespace System;

public ref struct Attr : Attribute {
   Attr(Type ^ a) {
      x = a;
   }

   Type ^ x;
};

ref struct G {};

generic<typename T>
public ref class Z {
public:
   Type ^ d;
   [Attr(T::typeid)]   // C2179
   // try the following line instead
   // [Attr(G::typeid)]
   T t;
};