Я пытаюсь вернуть указатель на функцию без использования typedef, но компилятор (gcc) испускает странную ошибку, как если бы я не мог делать такого рода установка.Ошибка в возврате указателя функции в C++ без typedef
Примечания: С использованием кода typedef работает.
код:
void catch_and_return(void (*pf)(char*, char*, int&), char *name_one, char* name_two, int& number)(char*, char *, int&)
{
pf(name_one, name_two, number);
return pf;
}
Ошибка:
'catch_and_return' объявлена как функция возвращает функцию
Можете ли вы объяснить мне, почему компилятор не позволяет мне это делать? Спасибо!
Можете ли вы показать код typedef? Это упростит понимание того, что именно вы пытаетесь сделать. –
Это должно быть 'void (* catch_and_return (void (* pf) (char *, char *, int &), char * name_one, char * name_two, int & number)) (char *, char *, int &)' смотреть на ответы на [этот вопрос] (http://stackoverflow.com/questions/997821/how-to-make-a-function-return-a-pointer-to-a-function-c) для некоторых примеров. – PeterT
Ради вашего здравомыслия, [std :: function] (http://en.cppreference.com/w/cpp/utility/functional/function) –