Suchergebnisse für Anfrage "language-lawyer"

2 die antwort

Verstehen des Beispiels zur Umwandlung von lWert in rWert

Ich habe Schwierigkeiten zu verstehen, wie dieser Code (ein Beispiel aus dem C ++ 14-Standardentwurf [conv.lval]) ruft undefiniertes Verhalten für @ ag(false). Warum tutconstexpr das Programm gültig machen? Auch was bedeutet "greift nicht auf @ ...

4 die antwort

Verursacht * & ++ in C ++ 03 undefiniertes Verhalten?

Im eine andere Antwort [https://stackoverflow.com/a/17400329/1505939] Es wurde angegeben, dass vor C ++ 11, woi ist einint, dann benutze den Ausdruck: *&++iverursacht undefiniertes Verhalten. Ist das wahr On der anderen Antwort gab es eine ...

8 die antwort

c ++ greift auf statische Member mit dem Nullzeiger @

Ich habe kürzlich das folgende Programm ausprobiert und es kompiliert, läuft einwandfrei und erzeugt die erwartete Ausgabe anstelle eines Laufzeitfehlers. #include <iostream> class demo { public: static void fun() { std::cout<<"fun() is ...

TOP-Veröffentlichungen

8 die antwort

Bedeuten C- und C ++ - Standards, dass ein spezieller Wert im Adressraum nur vorhanden sein muss, um den Wert von Nullzeigern darzustellen?

Folgende Diskussion vondiese Frag [https://stackoverflow.com/q/28573215/1000282] Über Null-Zeiger in C und C ++ möchte ich die abschließende Frage hier getrennt haben. Wenn es aus C- und C ++ - Standards abgeleitet werden kann (Antworten können ...

2 die antwort

Ist es UB, const zu verwerfen und value zu lesen? [Duplikat

Diese Frage hat hier bereits eine Antwort: Hält sich das Entfernen von const aus einem Zeiger-auf-const-Objekt an striktes Aliasing in C und bezieht sich auf dasselbe ...

6 die antwort

Ist die Referenzierung eines Zeigers, der standardmäßig nullptr undefiniertem Verhalten entspricht?

Ein Blog-Autor hat die Diskussion über Nullzeiger-Dereferenzierung angesprochen: http: //www.viva64.com/de/b/0306 [http://www.viva64.com/en/b/0306/] Ich habe hier einige Gegenargumente angegeben: http: //bit.ly/1L98GL ...

8 die antwort

Type Punning eine Struktur in C und C ++ über eine Union

Ich habe dies in gcc und g ++ mit pedantic kompiliert und bekomme in keinem eine Warnung: #include <stdio.h> #include <stdlib.h> #include <string.h> struct a { struct a *next; int i; }; struct b { struct b *next; int i; }; struct c { int x, x2, ...

2 die antwort

Warum können Klassendatenmember nicht durch direkte Initialisierungssyntax initialisiert werden?

Ich bin gespannt, warum die Datenelemente der Klasse nicht mit () -Syntax initialisiert werden können. Betrachten Sie folgendes Beispiel: #include <iostream> class test { public: void fun() { int a(3); std::cout<<a<<'\n'; } private: int s(3); // ...

2 die antwort

Kann ein Terminate-Handler eine Ausnahme auslösen?

Was ist das definierte Verhalten des folgenden Programms, falls vorhanden? #include <iostream> #include <exception> #include <cstdlib> void i_throw() { std::cout << "i_throw()" << std::endl; // std::terminate() is noexcept so if the terminate ...

6 die antwort

Wird der Ausdruck, auf den sizeof angewendet wird, nicht ausgewertet, ist es zulässig, einen Null- oder ungültigen Zeiger in sizeof in C ++ zu dereferenzieren?

Zunächst habe ich @ geseh Diese Frage zu C99 [https://stackoverflow.com/q/19785518/57428] und die akzeptierten Antwortreferenzenoperand wird nicht ausgewertet Formulierung im C99-Standardentwurf. Ich bin nicht sicher, ob diese Antwort auf C ++ ...