Ist constexpr ein "Hinweis" (wie Inline) oder eine "verbindliche Anfrage" an den Compiler?

Istconstexpr Ein Indikator für den Compiler oder ein Verhalten?

Das vorliegende Beispiel ist das folgende:

template<typename T> 
std::size_t constexpr getID() { return typeid(T).hash_code(); }

hash_code ist eine Laufzeitkonstante, dennoch würde dieses Snippetkompilieren obwohl mit eine Kompilierzeitauswertung angefordert wirdconstexpr. Erst wenn der Rückgabewert verwendet wird, bei dem eine Kompilierzeitkonstante erwartet wird, wird dies bemerktist nicht als Constexpr-Funktion verwendbar.

So ist es auchconstexpr ein "Hinweis" (ähnlich wie derinline Stichwort) oder "eine verbindliche Anfrage" an den Compiler?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage