В настоящее время я делаю некоторые работы с 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: «Cast»: указанная функция не совпадает с типом делегата «U (T)»
Чтобы быть более конкретным, проблематично строка кода:
return gcnew Func<T, U>(&LinqHelper::Cast);
Я затрудняюсь объяснить эту ошибку. Функция статического члена Cast, которую я передаю конструктору делегата Func, имеет требуемую подпись, то есть U Cast (T val).
Может ли кто-нибудь помочь пролить свет на это для меня, пожалуйста?
Если это поможет: я работаю с VS 2015, а проект C++/CLI ссылается на .NET framework v4.5.2.
Спасибо
Большое спасибо! –