Я пытаюсь понять, что здесь означает int(*)(FILE*). Как мне понимать этот синтаксис? Заголовок fclose — это просто int fclose(FILE* file), откуда берется (*) в аргументах шаблона?
Аналогично, используя эквивалентный decltype, почему мне нужно использовать &fclose, а не fclose?
Код: Выделить всё
int main() {
auto file = fopen("test", "w");
std::unique_ptr file_manager{file, fclose};
// or equivalently
// std::unique_ptr file_manager{file, fclose};
}
Изменить: это не повторяющийся вопрос, поскольку фокус находится на (*). Я спрашиваю, как возникает этот синтаксис, а не кто-то говорит мне, что это означает указатель на функцию. Можно было бы сказать мне, что кто-то так решил, и это вполне приемлемо.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... ter-syntax