コンパイラ エラー 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;
};