Когда следует использовать возможность constexpr в C ++ 11?

Мне кажется, что наличие «функции, которая всегда возвращает 5» нарушает или размывает смысл «вызова функция ". Должна быть причина или необходимость в этой возможности, иначе ее не было бы в C ++ 11. Почему это там?

// preprocessor.
#define MEANING_OF_LIFE 42

// constants:
const int MeaningOfLife = 42;

// constexpr-function:
constexpr int MeaningOfLife () { return 42; }

Мне кажется, что если бы я написал функцию, возвращающую буквальное значение, и подошел бы к проверке кода, кто-то сказал бы мне, что я должен тогда объявить постоянное значение вместо того, чтобы писать return 5.

322
задан TemplateRex 10 August 2013 в 20:12
поделиться