Entspricht constexpr aus C ++?

8

Siehe diesen Code:

%Vor%

rustc gibt das aus

%Vor%

Aber something_const ist nicht dynamisch, weil es zur Kompilierzeit bekannt ist.

Ist es ein Äquivalent in Rust des C ++ constexpr Mechanismus?

    
Boiethios 27.12.2016, 13:57
quelle

1 Antwort

10

constexpr in C ++ kann in 2 verschiedenen Situationen verwendet werden:

  • um eine Konstante zu qualifizieren und anzugeben, dass diese Konstante zur Kompilierzeit verfügbar sein muss
  • um eine Funktion zu qualifizieren und anzugeben, dass diese Funktion für die Kompilierzeitauswertung verfügbar sein muss

Rust unterstützt beide, wenn auch in begrenzter Weise:

  • Sie können const verwenden, um eine Konstante anstelle von let zu deklarieren, um zu erklären, dass sie wirklich konstant ist
  • on allnight können Sie const verwenden, um eine Funktion zu qualifizieren, um zu deklarieren, dass sie zur Kompilierzeit ausgewertet werden kann

In Ihrer Situation möchten Sie die erste Verwendung:

%Vor%

Beachten Sie, dass es im Gegensatz zu let obligatorisch ist, die Konstante mit ihrem Typ zu kommentieren.

Auch der Compiler wird sich über die Benennung beschweren; Konstanten verwenden ALL_CAPS .

    
Matthieu M. 27.12.2016, 14:07
quelle

Tags und Links