399 Stimmen

Wann sollten Sie die constexpr-Fähigkeit in C++11 verwenden?

Ich habe den Eindruck, dass eine "Funktion, die immer 5 zurückgibt" die Bedeutung von "Aufruf einer Funktion" aufhebt oder verwässert. Es muss einen Grund oder einen Bedarf für diese Fähigkeit geben, sonst wäre sie nicht in C++11 enthalten. Warum ist sie da?

// preprocessor.
#define MEANING_OF_LIFE 42

// constants:
const int MeaningOfLife = 42;

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

Wenn ich eine Funktion schreibe, die einen literalen Wert zurückgibt, und ich komme zu einem Code-Review, dann würde mir jemand sagen, ich solle einen konstanten Wert deklarieren, anstatt return 5 zu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X