[問題] C++/CLI 的泛型與Array問題

看板C_Sharp作者 (大招出盡)時間18年前 (2007/11/25 22:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
現在想要用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
文章代碼(AID): #17IOoXr2 (C_Sharp)