2010-03-10 51 views
0

我有一個輔助組件,它包括一個功能來識別對象類型:爲什麼我的靜態成員函數不能在程序集中識別?

namespace Util 
{ 
    using namespace System; 

    public ref class CastingHelpers 
    { 
    public: 
     template < class T, class U > 
     static System::Boolean isinst(U u); 

     static bool Test() {return true;} 
    }; 
} 

...但由於某些原因,當我嘗試在GUI應用程序,它引用組件使用它:

Util::CastingHelpers::Test(); 

Util::CastingHelpers::isinst<SomeClass^>(someInstance); 

..gives我一個錯誤:

2>.\DataProcessor.cpp(161) : error C2039: 'isinst' : is not a member of 'Util::CastingHelpers' 

說明:測試工作正常。這是否與isinst使用泛型相關?

回答

1

您不是創建通用函數,而是創建不從程序集導出的C++模板函數。

使用關鍵字generic而不是template來創建.NET通用類型和方法。

模板方法只能由包含其聲明的代碼顯示。

相關問題