[問題] C++/CLI 的泛型與Array問題
現在想要用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