2017-04-21 7 views
8

Ich habe festgestellt, eine Referenzvariable als Konstante in C++ auf Quora zu deklarieren.Verwendung von consExpr und const in Referenzdefinition

static constexpr const int& r = 3; 

Also, warum beide constexpr und const in einzelnen Anweisung verwendet?

Was ist der Zweck dieser Art von Aussage?

+0

Nützliche Informationen: http://StackOverflow.com/Questions/14116003/Difference-between-constexpr-and-const Was ist der Zweck? Demonstration, denke ich. – user4581301

+3

Ähnliche Frage, http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference. "constexpr" gilt für die Referenz und "const int" ist das, auf das verwiesen wird, sie haben unterschiedliche Bedeutungen –

Antwort

5

const Variablen sind Variablen, die nach der Initialisierung nicht geändert werden können (z. B. const int a = 1).

constexpr Variablen sind constant expressions und können zur Kompilierungszeit verwendet werden. Die Verwendung von constexpr für eine Variablendeklaration impliziert const.

jedoch in dieser Erklärung gilt const zum int, während constexpr zu const int& (eine Referenz auf ein const int) gilt.

+0

"was bedeutet, dass die' const' redundant ist "Kaum. –

+1

Es sei denn, Speicher versagt mir, da C++ 14 'constexpr' nicht mehr 'const' bedeutet. –

+4

@AndyProwl Das ist für Mitgliedsfunktionen. –

Verwandte Themen