Мне кажется, что наличие «функции, которая всегда возвращает 5» нарушает или размывает смысл «вызова функция ". Должна быть причина или необходимость в этой возможности, иначе ее не было бы в C ++ 11. Почему это там?
// preprocessor.
#define MEANING_OF_LIFE 42
// constants:
const int MeaningOfLife = 42;
// constexpr-function:
constexpr int MeaningOfLife () { return 42; }
Мне кажется, что если бы я написал функцию, возвращающую буквальное значение, и подошел бы к проверке кода, кто-то сказал бы мне, что я должен тогда объявить постоянное значение вместо того, чтобы писать return 5.