次の方法で共有


コンパイラ エラー C2179

'type': 属性引数は型パラメーターを使用することはできません

ジェネリック型パラメーターは実行時に解決されます。 ただし、属性パラメーターはコンパイル時に解決する必要があります。 このため、属性の引数としてジェネリック型パラメーターを使用することはできません。

次の例では 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;
};