Здравствуйте, σ, Вы писали:
σ>Так как тип "функция" не распадается в тип "указатель на функцию" при самом осмысленном что с выражением этого типа можно сделать — вызове функции — (https://timsong-cpp.github.io/cppwp/n4659/expr.call#1 … For a call to a non-member function or to a static member function, the postfix expression shall be either an lvalue that refers to a function (in which case the function-to-pointer standard conversion is suppressed on the postfix expression) …), да и объектов этого (функций) типа не существует, ответ в значительной степени лишён смысла.
Objects, references, functions including function template specializations, and expressions have a property called type, which both restricts the operations that are permitted for those entities and provides semantic meaning to the otherwise generic sequences of bits.
Правильно я понимаю, что код функции (из программы) будет переводится в машинные команды и эти команды будут помещаются в readonly область памяти программы? Вот этим машинным командам, т.е. этой sequence of bits и приписывается конкретный тип function, например, int ()(int, int). А указатель на функцию, int (*)(int, int), указывает на начало этих машинных команд, т.е. на начало этой sequence of bits?