2016-04-03 4 views
5

Ich habe ein Buch über C++ 14/11 gelesen. Ich habe gerade ein Kapitel über das Stichwort constexpr gelesen. Ich weiß, wofür es gebraucht wird. Ich verstehe, wie es für Klassen und Klassenfunktionen verwendet werden kann. Aber wie oft sollte ich Constexpr verwenden? Sollte ich es auch im Code für Klassen verwenden, die ich kenne, wird nie verwendet, um contstexpr Objekte zu erstellen? (Nur für den Fall, weil es mich nichts kostet, oder?)C++ 14 Wie oft sollte ich constexpr verwenden?

+0

Sie fragen nach Meinungen. Von meinem Standpunkt aus sollten Sie es so oft wie möglich verwenden. Jemand könnte andere Gedanken haben. –

+0

@GeorgeSovetov Das Problem ist, dass "Meinungen" hier nicht thematisiert sind (_in erster Linie meinungsbasierte_ Kategorie). – edmz

+4

Früh und oft. Und zweimal am Sonntag. – wally

Antwort

6

C++ 14 Wie oft sollte ich constexpr verwenden?

Es gibt eine ausführliche Diskussion in Artikel 15 (Verwenden constexpr wann immer möglich) des Scott Meyer's Buch Effective Modern C++.

Die Gliederung dieses Artikels ist, dass constexpr sollte wann immer möglich verwendet werden, aufgrund der Tatsache, dass constexpr Funktionen und Objekte in einem breiteren Bereich von Kontexten als die Nicht-constexpr verwendet werden können.

Allerdings erwähnt der Autor im selben Artikel einen Vorbehalt der Überbeanspruchung constexpr. Das heißt, wenn Sie sich entscheiden, ein Objekt oder eine Funktion als constexpr zu qualifizieren, dürfen Ihre Kunden es in constexpr Inhalt verwenden. Wenn Sie jedoch später entscheiden, dass dieser Code nicht constexpr sein und constexpr entfernen muss, kann dies dazu führen, dass Ihr Code nicht kompiliert wird, einschließlich der Nebenwirkungen, die dies für Ihre Clients haben wird.

von Originaltext Zitiert:

„Use constexpr wann immer möglich“ ist Ihre Bereitschaft, ein langfristiges Engagement für die Zwänge auf die Objekte und Funktionen Sie es anzuwenden erlegt zu machen.