Нет, такого типа, как указатель на функцию "что-либо возвращающее", не существует. Есть только указатели на функцию, которая возвращает некоторый тип или void
. auto
просто выводит тип из инициализатора, и нет ничего, из чего можно вывести тип в вашем примере.
Однако у вас может быть шаблон функции, где экземпляр шаблона является функцией, которая возвращает тип определяется аргументом шаблона:
// function template
template<class T>
T foo() {
return {};
}
Аналогично, у вас может быть переменная шаблона, которая является указателем на функцию, тип возвращаемой которой определяется переменной шаблона:
// variable template
template<class T>
T (*funcPtr)() = foo;
// example usage
int main() {
return funcPtr<int>();
}