Wir wissen, dass eine "const-Variable" angibt, dass Sie die Variable nach ihrer Zuweisung nicht wie folgt ändern können: int const i = 1; i = 2; Das obige Programm kann nicht kompiliert werden. gcc fordert mit einem Fehler auf: assignment of read-only variable 'i' Kein Problem, ich kann es verstehen, …
Betrachten wir diese sehr einfache asynchrone Methode: static async Task myMethodAsync() { await Task.Delay(500); } Wenn ich dies mit VS2013 (Pre Roslyn Compiler) kompiliere, ist die generierte Zustandsmaschine eine Struktur. private struct <myMethodAsync>d__0 : IAsyncStateMachine { ... void IAsyncStateMachine.MoveNext() { ... } } Wenn ich es mit VS2015 (Roslyn) kompiliere, …
(int) + 4*5; Warum ist dies möglich (Hinzufügen eines Typs mit einem Wert) ? (versucht mit g ++ und gcc.) Ich weiß, dass es keinen Sinn ergibt (und keine Wirkung hat), aber ich möchte wissen, warum dies möglich ist.
class C { using namespace std; // error }; namespace N { using namespace std; // ok } int main () { using namespace std; // ok } Bearbeiten : Willst du die Motivation dahinter wissen.
Nehmen wir an, ich kompiliere schlecht geschriebenen C ++ - Quellcode, der undefiniertes Verhalten hervorruft, und daher (wie sie sagen) "kann alles passieren". Aus der Perspektive dessen, was die C ++ - Sprachspezifikation in einem "konformen" Compiler als akzeptabel erachtet, bedeutet "alles" in diesem Szenario, dass der Compiler abstürzt (oder …
Heute habe ich ein Problem. Ich brauche eine staticMitgliedsfunktion, constist kein Muss, aber besser. Aber meine Bemühungen waren nicht erfolgreich. Kann jemand sagen warum oder wie?
Die zwei Bedingungen, die eine Funktion purewie folgt definieren, sind wie folgt: Keine Nebenwirkungen (dh nur Änderungen des lokalen Bereichs sind zulässig) Geben Sie immer den gleichen Ausgang zurück, wenn Sie den gleichen Eingang haben Wenn die erste Bedingung immer wahr ist, gibt es Zeiten, in denen die zweite Bedingung …
(In Bezug auf diese Frage und Antwort .) Vor dem C ++ 17-Standard war der folgende Satz in [basic.compound] / 3 enthalten : Befindet sich ein Objekt vom Typ T an einer Adresse A, so soll ein Zeiger vom Typ cv T *, dessen Wert die Adresse A ist, auf …
Dies (beachten Sie den Komma-Operator ): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } Ausgänge 2 . Wenn Sie jedoch returnden Komma-Operator verwenden, gilt Folgendes: #include <iostream> int f() { return 2, 3; } int main() { int x; …
In c++03es ist ziemlich klar , dass ein Null - Zeiger zu löschen hat keine Wirkung. In der Tat wird ausdrücklich darauf hingewiesen §5.3.5/2: In beiden Alternativen hat die Operation keine Auswirkung, wenn der Wert des Operanden "Löschen" der Nullzeiger ist. Im aktuellen Entwurf für c++0xdiesen Satz scheint jedoch zu …
Auftakt: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z führt eine Syntax für strukturierte Bindungen ein, die das Schreiben anstelle von ermöglicht int a, b, c; std::tie(a, b, c) = f(); etwas wie auto [a, b, c] = f(); Es std::tiedarf jedoch auch angegeben werden std::ignore, …
Der Code, der undefiniertes Verhalten aufruft (in diesem Beispiel Division durch Null), wird niemals ausgeführt. Ist das Programm immer noch undefiniertes Verhalten? int main(void) { int i; if(0) { i = 1/0; } return 0; } Ich denke, es ist immer noch undefiniertes Verhalten, aber ich kann im Standard keine …
Es gibt einen alten Beitrag, der nach einem Konstrukt fragt, für das er zurückkehren sizeofwürde 0. Es gibt einige Highscore-Antworten von Benutzern mit hohem Ansehen, die besagen, dass standardmäßig kein Typ oder keine Variable eine Größe von 0 haben kann. Und ich stimme dem zu 100% zu. Es gibt jedoch …
Ich bin nicht so gut mit dem C-Standard vertraut, bitte nehmen Sie Kontakt mit mir auf. Ich würde gerne wissen, ob es standardmäßig garantiert ist, dass memcpy(0,0,0)es sicher ist. Die einzige Einschränkung, die ich finden konnte, ist, dass das Verhalten undefiniert ist, wenn sich die Speicherbereiche überlappen ... Aber können …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.