作者sedc (大招出尽)
看板C_Sharp
标题[问题] C++/CLI 的泛型与Array问题
时间Sun Nov 25 22:54:23 2007
现在想要用C++/CLI写个Wrapper Class来包装一个原生C++写成的API
以供C#的程式使用,其中有一个class包含了template,
而我在C++/CLI中要写个同样支援泛型的Wrapper Class时遇到了点问题
,叙述如下:
--------------------------------------
假设原生c++的API中,该class定义如下:
template<class T> NativeClass
{
public:
FunctionA(Real* arg1);
};
--------------------------------------
而我在C++/CLI中撰写的Wrapper Class如下:
generic<class R> MgdClass
{
private:
NativeClass<R>* m_pNativeClass;
public:
mgdFunctionA(array<R>^ arg1) //引数是个阵列
{
pin_ptr<R> marg1 = &arg1[0];
FunctionA(marg1);
}
};
则在蓝色那行会有
error C3231: 'R' : 范本类型引数不可使用泛型型别参数
的编译错误
而若在程式码中想宣告R的指标(R*),也会出现
error C3229: 'R *' : 不允许在泛型型别参数上间接取值
的编译错误
想请问这些错误该怎麽解决呢? 又或者是像这样的对於使用template的
Wrapper Class若也想做到泛型是没办法的呢?
(另外,R在使用上可能只会是float、double等实值型别而已,所以如果
说硬写二份也是可以啦…)
恳请解答,感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.194.91