Привет!
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
Entities of int type это числа (из некоторого диапазона), в тексте программы их нет, они имеют бинарное представление.
А что имеется ввиду под entities of function type — имеется ввиду бинарное представление или текст функции в программе?
С одной стороны бинарного представления функции могут не иметь. С другой стороны может быть указатель на функцию.
МР>>А что имеется ввиду под entities of function type — имеется ввиду бинарное представление или текст функции в программе?
МР>>С одной стороны бинарного представления функции могут не иметь. С другой стороны может быть указатель на функцию.
V>Так как тип "функция" распадается в тип "указатель на функцию" при любой попытке сделать с объектом этого типа что-то осмысленное, вопрос в значительной степени лишен смысла.
Так как тип "функция" не распадается в тип "указатель на функцию" при самом осмысленном что с выражением этого типа можно сделать — вызове функции — (
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) …), да и объектов этого (функций) типа не существует, ответ в значительной степени лишён смысла.
Здравствуйте, σ, Вы писали:
σ>Так как тип "функция" не распадается в тип "указатель на функцию" при самом осмысленном что с выражением этого типа можно сделать — вызове функции — (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?