Beginnen wir mit einem Kontext.
Ein benutzerdefinierter Speicherpool verwendete Code ähnlich dem folgenden:
%Vor%
Die Idee ist, dass ein Konstruktor, wenn er mit FastInitialization aufgerufen wird, annehmen könnte, dass der Speicher...
Dieses Programm ist schlecht gebildet:
%Vor%
i , ein Unterobjekt des temporären X { } , kann nicht als lvalue verwendet werden, weil X { } ein rvalue ist.
Dies wird jedoch im Hintergrund mit GCC 5.2.1 und -Wall kompiliert:
%Vo...
Haben JDK-Klassen über Javadoc hinaus noch weitere Spezifikationen? Wenn ja, wo?
Betrachten Sie zum Beispiel Collections.unmodifiableMap . Sein Javadoc nicht etwas über Fadensicherheit sagen; Ich kann also nicht einfach davon ausgehen, da...
Was ist der minimale Rahmen, der für den Code von x benötigt wird, damit dieser Code funktioniert, unter Berücksichtigung der implizierten Synchronisation beim Erstellen / Verbinden eines Threads: std::atomic ? %Code%? nichts?
%Vor%
...
Sowohl clang als auch gcc lehnen diesen Code ab:
%Vor%
Beide akzeptieren jedoch den folgenden Code:
%Vor%
Der Standard besagt, dass die Namenssuche eines Namens vor :: "nur Namespaces, Typen und Vorlagen berücksichtigt, deren Speziali...
C ++ 11 bietet Funktionen wie Thread-sichere Initialisierung von statischen Variablen und unter Berufung auf diese Frage sagen wir zum Beispiel:
%Vor%
So ist das scheinbar (?) unabhängig davon, ob ein Modul, das mit einem C ++ 11-Compiler...
Ich stimme der Antwort in Wann Referenzen statt Zeiger zu verwenden.
Aber ich frage mich, warum C ++ atomic_load als definiert
%Vor%
statt
%Vor%
Kann mir jemand helfen?
Ich habe mich gefragt, ob das Folgende nach dem C ++ - Standard legal ist:
%Vor%
GCC 6.3 akzeptiert es, aber Clang 3.9 lehnt es ab.
Wenn ich das stattdessen tue:
%Vor%
Jetzt akzeptieren beide Compiler es. Sind beide in diesem Fall fal...
Mein Verständnis ist, dass in C ++ 17 das folgende Snippet das Richtige tun soll:
%Vor%
Das heißt, in C ++ 17 soll der Compiler sowohl d1 als auch d2 als rvalues für die Zwecke der Überladungsauflösung in diesen beiden return-Anweisu...