language-lawyer

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

Haben unbenannte Bitfelder eine wohldefinierte Semantik?

Wird der folgende Code garantiert normal und erfolgreich beendet? %Vor% Beim Beantworten einer anderen Frage wurde die Möglichkeit eröffnet, dass die Zuweisung an ein benanntes Bit-Feld in einer Struktur ebenfalls erfolgt enthält ein unben...
06.09.2013, 06:11
2
Antworten

Erlaubt der C ++ - Standard dieses Fließkomma-Verhalten?

Im folgenden Code: %Vor% Unter Verwendung von v4.9.3 g++ -std=c++14 targeting 32-bit Windows werde ich ausgegeben: %Vor% Sollen diese Werte unterschiedlich sein? Ich habe erwartet, dass dies auch dann der Fall sein sollte, wenn der...
21.12.2015, 05:07
2
Antworten

Konvertierungseinschränkungen in C ++ 11: Was ist der "Istwert nach der Konvertierung"?

Ist der folgende Code in C ++ 11 zulässig? %Vor% Der Code stammt aus der "C ++ Programmiersprache" 4. Ausgabe (Seite 150). Wie wir wissen, ist die Eingrenzung der Konvertierung für die Listeninitialisierung nicht zulässig, und unter der S...
13.02.2014, 11:52
3
Antworten

Ist die Verwendung des temporären Objekts als Standardargument in C ++ sicher?

Zum Beispiel: %Vor% Aktualisieren Die Schlussfolgerung von SoapBox ist richtig, aber der Grund ist nicht völlig richtig.    Die Lebensdauer des Temporären wird automatisch auf die selbe verlängert   als die Referenz, die es hält....
20.07.2012, 01:01
1
Antwort

MSVC-Fehler C2593 beim Überladen des konstanten und nichtkonstanten Konvertierungsoperators, der den Array-Typ zurückgibt

Kürzlich habe ich versucht, einen Konvertierungsoperator als Alternative zu operator [] zu verwenden. Wie der folgende Code: %Vor% Ich fand es funktioniert in G ++ aber nicht in MSVC v141 (2017). MSVC meldet: %Vor% Also ist...
14.01.2018, 14:28
2
Antworten

Warum kann ich einen typedef-Namen des Array-Typs nicht vervollständigen?

Der C-Standard besagt (§6.2.5 p22):    Ein Array-Typ unbekannter Größe ist ein unvollständiger Typ. Es ist vollbracht,   für eine Kennung dieses Typs, indem Sie die Größe später angeben   Erklärung (mit interner oder externer Verknüpfung)....
13.02.2017, 02:02
2
Antworten

Ist eine Aussage void (); legal und was ist das eigentlich?

Ich habe ein kleines Stück Code mit einer Aussage void(); %Vor% Was ist 1 void() genau? Eine anonyme Funktionsdeklaration? Eine Typdeklaration? Ein leerer Ausdruck? Was macht 1 void() anders als 2 void; ? Ich habe sc...
29.03.2017, 14:33
1
Antwort

Dereferenz null ist nicht immer UB?

Ich habe immer gewusst, dass die Standardmandate Dereferenzierung null UB ist. Jedoch, (Link 1) sagt    p = 0; * p; ist nicht von Natur aus ein Fehler. und bietet einen Link zu (Link 2) sagt    * p ist kein Fehler, wenn p...
21.04.2017, 03:06
1
Antwort

Lambda konvertierte den Funktionszeigervergleich

Einfach, wird die folgende Behauptung jemals feuern? %Vor% Der Standard scheint nur zu sagen, dass der Lambda-konvertierte Funktionszeiger dasselbe tut wie das Lambda selbst , dann erkennst du trivial zerstörte Typen, die alle keine Op-Dest...
28.01.2018, 10:15
1
Antwort

Wohlgeformtes Programm mit einer fehlerhaft geformten Template-Member-Funktion?

Im folgenden Ausschnitt bin ich verwirrt darüber, warum die Definition von Wrapper::f() const mein Programm nicht zu einem schlecht geformten 1 macht, obwohl es eine nicht-konstante Mitgliedsfunktion eines nicht veränderbaren Mitglieds aufr...
15.12.2017, 09:34