language-lawyer

Für Fragen zu den Feinheiten formeller oder autoritativer Spezifikationen von Programmiersprachen und Umgebungen.
2
Antworten

Ist das Überladen der Funktion durch Referenz zulässig, wenn keine Mehrdeutigkeit besteht?

Betrachten Sie folgenden Code: %Vor% Ich verstehe, dass es eine Mehrdeutigkeit für foo(m) einführt, aber ist dies zulässig, wenn der Ausdruck vom Typ int ist (oder ein anderer, der in int konvertiert werden kann)? Ich habe versuc...
16.07.2015, 12:21
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
5
Antworten

Wird eine virtuelle Memberfunktion verwendet, wenn sie nicht rein ist?

C++03 3.2.2 ... Ein Objekt oder eine nicht überladene Funktion wird verwendet, wenn der Name in einem potenziell ausgewerteten Ausdruck erscheint. Eine virtuelle Memberfunktion wird verwendet, wenn sie nicht rein ist ... Und dann späte...
10.11.2010, 15:15
2
Antworten

Visual Studio 2015 - Compilerwarnung (Stufe 2) C4146

Ich habe die folgende Zeile in meinem Code %Vor% was den Fehler erzeugt:    C4146 unärer Minus-Operator, der auf vorzeichenlosen Typ angewendet wurde, Ergebnis immer noch vorzeichenlos aber dies ist immer noch mit dem Datenbereich des...
22.01.2016, 10:53
2
Antworten

Anforderungen für std :: thread :: id. Kann es atomisiert werden?

Der Standard sagt: "Ein Objekt vom Typ thread :: id stellt ... einen einzelnen eindeutigen Wert für alle Thread-Objekte zur Verfügung, die keinen Ausführungsthread darstellen." Ist das ein einzelner / bestimmter Wert in Bezug auf operator== o...
03.10.2012, 07:11
3
Antworten

Kann ein C-Compiler die Bit-Repräsentation ändern, wenn das Vorzeichen in Unsigned umgewandelt wird?

Ist es für eine explizite Umwandlung von, sagen wir, int32_t zu uint32_t möglich, die Bitdarstellung des Wertes zu ändern? Zum Beispiel, wenn ich die folgende Vereinigung habe: %Vor% Werden diese Codesegmente durch die Spezifikation...
21.09.2013, 02:12
2
Antworten

Erlaubte Compiler-Optimierungen für Schleifen in C ++ 11

Ist ein C ++ 11-kompatibler Compiler erlaubt, diesen Code zu optimieren / zu transformieren von: %Vor% zu allem, was einer Endlosschleife entspricht: %Vor% Die obige Umwandlung ist sicherlich aus der Sicht eines Single-Thread-Programms g...
03.03.2013, 15:55
1
Antwort

Mysteriöse Linie im Stack-Trace

Während Untersuchung einer Stack-Trace-Diskrepanz beim Verfassen einer anderen Antwort stieß ich auf ein Verhalten, das ich nicht verstehe. Betrachten Sie das folgende Testprogramm (das ist so weit unten, wie ich es eingrenzen könnte): %Vor%...
26.02.2017, 03:41
1
Antwort

Überladen der Klassenvorlage über TUs

Betrachten Sie die folgende C ++ 11-Anwendung: A.cpp: %Vor% B.cpp: %Vor% Haupt.cpp: %Vor% Obwohl es kompiliert wird (solange A und B in separaten TUs sind), sieht es nicht richtig aus, und ich habe Schwierigkeiten herauszufi...
23.01.2018, 10:43
2
Antworten

C ++ - striktes Aliasing, wenn kein Zeiger verwendet wird, der von placement new zurückgegeben wird

Kann dies zu undefiniertem Verhalten führen? %Vor% char hat spezielle Regeln für das strikte Aliasing. Wenn ich char anstelle von uint8_t verwende, ist es immer noch Undefined Behavior? Was ändert sich noch? Wie Mitglied DeadMG...
08.01.2014, 00:26