Почему не работает тип указателя на функцию?
#include <iostream>
using namespace std;
void func() {
cout << "call func" << endl;
}
struct S {
void(*)() operator () () {
return func;
}
};
int main() {
S s;
s()();
}
Получаю ошибку: error: expected member name or ';' after declaration specifiers
Почему не работает void(*)() в качестве типа возврата?
Любым другим способом тип добавить можно, например, через auto, или через function<void()> или через typedef void(*ptf)();
Но почему нельзя явно указать сам тип??