2
目前,我正在做一些工作,C++/CLI,和我遇到一個奇怪的編譯錯誤,用下面的代碼:C++/CLI編譯錯誤與泛型委託
private ref class LinqHelper abstract sealed
{
public:
generic<typename T, typename U> static Func<T, U>^ Cast()
{
return gcnew Func<T, U>(&LinqHelper::Cast);
}
private:
generic<typename T, typename U> static U Cast(T val)
{
return safe_cast<U>(val);
}
};
錯誤C3352:「演員」:指定的函數不匹配委託類型「U(T)」
更具體地,有問題的代碼行是:
return gcnew Func<T, U>(&LinqHelper::Cast);
我發現自己無法解釋這個錯誤。我傳遞給Func委託構造函數的Cast靜態成員函數具有所需的簽名,即U Cast(T val)。
任何人都可以幫我解釋一下這個對我來說好嗎?
如果有任何幫助:我正在使用VS 2015,C++/CLI項目正在引用.NET框架v4.5.2。
謝謝
非常感謝! –