Я использую Visual Studio и перепробовал все, что мог придумать.но не знаю, почему этот фрагмент кода генерирует ошибку, это мой код:
template <class A,class B> B returnArgtype(void (A::*)(B)) {return *new B;}
struct test
{
void function(int);
decltype(returnArgtype(&test::function)) x;
};
, и он генерирует эту ошибку:
error C2784: 'A returnArgtype(void (__thiscall A::* )(B))' : could not deduce template argument for 'void (__thiscall A::* )(B)' from 'void (int)'
, и мне интересно, это не 'генерирует эту ошибку, когда параметр x инициализируется внутри функции, что-то вроде этого:
struct test
{
void function(int)
{
decltype(returnArgtype(&test::function)) x;
}
};