constexpr

constexpr ist ein in C ++ 11 eingeführter Modifikator, der den Compiler darüber informiert, dass der Wert einer Funktion oder Variablen bekannt ist oder zur Kompilierzeit berechnet werden kann. Als solches kann es als eine Konstante an Orten verwendet werden, wo es sonst nicht sein könnte.
6
Antworten

Kompilierzeit Berechnung der Anzahl der Bits benötigt, um n verschiedene Zustände zu kodieren

Bearbeiten: In der ersten Frage hatte eine falsche Formel und der Algorithmus versuchte etwas völlig anderes als das, was beabsichtigt war. Ich entschuldige mich und ich beschloss, die Frage neu zu schreiben, um alle Verwirrung zu beseitigen....
21.05.2014, 11:09
3
Antworten

constexpr und CRTP: Compiler-Uneinigkeit

Wenn Ausdrucksvorlagen mithilfe von CRTP implementiert werden, verwendet die Klasse an der Spitze der Ausdruckshierarchie Down-Casting von Basis zu abgeleitet, um einige ihrer Operationen zu implementieren. Laut clang-3.5 ( -std=c++1y ) sollte...
13.01.2015, 01:23
3
Antworten

Alternative für Constexpr-Funktionen

Ich habe einige kurze constexpr -Funktionen in meinen Bibliotheken, die einige einfache Berechnungen durchführen. Ich verwende sie sowohl in Laufzeit- als auch in Kompilierungskontexten. Ich möchte einige Behauptungen im Rumpf dieser Funkt...
27.09.2014, 08:14
2
Antworten

c ++ 11 schnelle conexpr ganzzahlige Potenzen

Das tote Pferd hier schlagen. Ein typischer (und schneller) Weg, ganzzahlige Kräfte in C zu tun, ist dieser Klassiker: %Vor% Allerdings benötigte ich eine Kompilierzeit integer power, also ging ich voran und machte eine rekursive Implementie...
18.07.2013, 09:32
3
Antworten

Wie überprüft man das Bitmuster eines Double ist 0x0 in einem C ++ 11 Constexpr?

Ich möchte überprüfen, ob eine gegebene double / float-Variable das tatsächliche Bitmuster 0x0 hat. Frag nicht warum, es wird in einer Funktion in Qt ( qIsNull() ) verwendet, die ich gerne constexpr wäre. Der ursprüngliche Code verwendet...
17.02.2012, 12:31
1
Antwort

Warum beklagt sich der Compiler darüber, dass es sich nicht um einen Constexpr handelt?

Ich versuche, ein wenig mehr darüber zu lernen, wie man in der Praxis konstante C ++ - Ausdrücke benutzt, und habe zu Illustrationszwecken die folgende Matrix-Klassenvorlage erstellt: %Vor% Die Idee ist, eine einfache Matrix-Klasse zu haben,...
29.06.2016, 15:10
1
Antwort

simulieren die Kompilierzeit-Reflektion in C ++

Ich habe eine folgende Struktur: %Vor% Ich möchte eines der Mitglieder nach dem Stringnamen in constexpr way auswählen, wie %Vor% getMember ist constexpr function / struct / macros / was auch immer in Frage und Ausdruck sollte (ich...
12.12.2012, 00:23
4
Antworten

Warum kann ich in Visual Studio nicht eine Templatised, conexpr Funktion in enable_if verwenden?

Also habe ich das auf ein minimales, vollständiges, überprüfbares Beispiel heruntergekocht und es scheint, dass Visual Studio 2015 mir einfach nicht erlaubt, eine Template-Funktion constexpr in enable_if zu verwenden. Zum Beispiel: %V...
11.01.2017, 14:36
3
Antworten

constexpr Leere Funktion abgelehnt

Ich habe diese sehr einfache Funktion, die nicht kompiliert wird. %Vor% Der Fehler, den ich bekomme, ist: %Vor% In% C ++ 14 ist void ein Literaltyp [§3.9 / 10]:    Ein Typ ist ein literaler Typ , wenn er: ist       void; oder  ...
25.03.2015, 16:31
1
Antwort

Warum muss conexpr statisch sein?

Ein Versuch, ein Member einer Struktur mit dem Attribut conexpr zu erstellen, ohne statisch zu sein, führt zu einem Compilerfehler (siehe unten). Warum das? Für einen einzelnen konstanten Wert habe ich diesen Wert im Speicher, bis das Programm t...
13.04.2014, 18:38