ネイティブ配列を作成し、マネージド コードにアクセスしたいと考えています。int
コードを異なる型 ( 、long
、float
、 )に書き直したくないdouble
ため、ジェネリックを使用してみました。
typedef int IND;
generic <typename T>
public ref class ntvarray
{
void *pnt;
IND sz;
public:
ntvarray(IND length)
{
sz = sizeof(T);
pnt = ::operator new(length*sz);
}
~ntvarray()
{
::operator delete(pnt);
}
void* pointer()
{
return pnt;
}
T getitem (IND index)
{
//c3229
return ((T*)pnt)[index];
}
void setitem (IND index, T value)
{
//c3229
((T*)pnt)[index] = value;
}
};
エラーが発生し、このエラーの理由を知っています。
エラー C3229:
'T *'
: ジェネリック型パラメーターの間接指定は許可されていません
ただし、ジェネリックを使用してこれを行う方法はありますか? これを行う他の方法は、ジェネリックを使用する以外の方法でしょうか?