Suchergebnisse für Anfrage "constexpr"

2 die antwort

Kann ich C ++ - Typnamen auf constexpr-Weise erhalten?

Ich möchte beim Kompilieren den Namen eines Typs verwenden. Angenommen, ich habe geschrieben: constexpr size_t my_strlen(const char* s) { const char* cp = s; while(*cp != '\0') { cp++; }; return cp - s; }und jetzt möchte ich haben: template ...

4 die antwort

CRTP Kompilierungsfehler

Das Folgende wird mit GCC 5.2 kompiliert, jedoch nicht mit Visual Studio 2015. template <typename Derived> struct CRTP { static constexpr int num = Derived::value + 1; }; struct A : CRTP<A> { static constexpr int value = 5; };s beschwert sich, ...

6 die antwort

Warum sollte ich statischen constexpr int in einer Klasse gegenüber enum für Integralkonstanten auf Klassenebene vorziehen?

C ++ 17 Update: static constexpr Variablen sind implizitinline Es ist also keine externe Definition erforderlich. Ursprüngliche Frage: Sagen wir, ich habe eine Liste von Konstanten wie struct Cls { static constexpr int N = 32; static ...

TOP-Veröffentlichungen

4 die antwort

Initialisierung eines Constexpr mit einer const, - int vs float

Ich frage mich, warum die ganze Zahlii wird zur Kompilierungszeit initialisiert, aber nicht das floatff Hier int main() { const int i = 1; constexpr int ii = i; const float f = 1.0; constexpr float ff = f; }Das passiert, wenn ich versuche zu ...

4 die antwort

Throw in Constexpr Funktion

Der folgende Code kompiliert unter clang ++ 3.7.0, wird jedoch von g ++ 5.3.1 abgelehnt. Beide haben-std=c++14 Möglichkeit. Welcher Compiler ist richtig? Weiß jemand wo in der Norm darüber geredet wird? Vielen Dank #include <stdexcept> using ...

2 die antwort

Selbstinitialisierung einer statischen Constexpr-Variablen, ist sie wohlgeformt?

Gab die folgende Deklaration im globalen Namespace: constexpr int x = x;Ist das wohlgeformt? Der Entwurf des C ++ 14-Standardabschnitts3.6.2 [basic.start.init] sagt: Variablen mit statischer Speicherdauer (3.7.1) oder Thread-Speicherdauer ...

4 die antwort

Soweit ich das beurteilen kann, ist die unten stehende Funktion nicht constexpr, aber der Code kompiliert in clang und g ++. Was vermisse ich

Ich habe dieses Beispiel aus §5.19 / 2 in N4140 erhalten: constexpr int incr(int &n) { return ++n; } Soweit ich das beurteilen kann, ist dies keinconstexpr Funktion. Das Snippet wird jedoch in clang und g ++ kompiliert. SehenBeispiel ...

8 die antwort

Warum ist non-const std :: array :: operator [] nicht constexpr?

Ich versuche, ein 2D-Array zur Kompilierzeit mit einer bestimmten Funktion zu füllen. Hier ist mein Code: template<int H, int W> struct Table { int data[H][W]; //std::array<std::array<int, H>, W> data; // This does not work constexpr Table() : ...

4 die antwort

Was bedeutet es, eine Funktion in C ++ zu "vergiften"?

anz am Ende von Scott Schurrs Vortr "Wir stellen vor:constexpr "bei CppCon [https://youtu.be/fZjYCQ8dzTc?t=3679], fragt er "Gibt es eine Möglichkeit, eine Funktion zu vergiften?" Er erklärt dann, dass dies (wenn auch nicht auf standardmäßige ...

2 die antwort

Constexpr Kompilierungsfehler mit std :: acos mit clang ++ not g ++

Ich möchte mit der Migration eines Projekts von gcc nach clang ++ experimentieren. Ich gebe Unwissenheit meinerseits zu, ich bin mir nicht sicher, warum das folgende Stück Code template <typename T> constexpr T pi{std::acos(T(-1.0))};compiles ...