Der Ausdruck new int;wie in int * x = new int;ist ein neuer Ausdruck . Der Begriff "neuer Operator" scheint synonym mit "neuer Ausdruck" verwendet zu werden, zum Beispiel in dieser Frage: Unterschied zwischen "neuer Operator" und "neuer Operator"? Ist es richtig zu sagen, dass das Schlüsselwort, newwie es in …
Darf der Compiler dies optimieren (gemäß C ++ 17-Standard): int fn() { volatile int x = 0; return x; } dazu? int fn() { return 0; } Wenn ja, warum? Wenn nicht, warum nicht? Hier einige Überlegungen zu diesem Thema: Aktuelle Compiler werden fn()als lokale Variable kompiliert , die auf …
Wenn ich 019 > 020die JavaScript-Konsole eingebe (sowohl in Chrome als auch in Firefox getestet), erhalte ich die Antwort true. Dies ist darauf zurückzuführen, 020dass es als OctalIntegerLiteral(gleich 16) 019interpretiert wird, während es anscheinend als DecimalLiteral(und gleich 19) interpretiert wird . Da 19ist größer als 16, 019 > 020ist true. …
Angesichts der Standarddefinition für das Hauptprogramm: int main(int argc, char *argv[]) { ... } Unter welchen Umständen kann argcauf einem POSIX-System Null sein?
Ich habe schon mehrmals festgestellt, dass der folgende Code vom C ++ - Standard nicht zugelassen wird: int array[5]; int *array_begin = &array[0]; int *array_end = &array[5]; Ist &array[5]legaler C ++ - Code in diesem Zusammenhang? Ich möchte eine Antwort mit Bezug auf den Standard, wenn möglich. Es wäre auch …
Was würde diese Aussage bringen? void *p = malloc(sizeof(void)); Bearbeiten: Eine Erweiterung der Frage. Wenn sizeof (void) im GCC-Compiler 1 ergibt, wird 1 Byte Speicher zugewiesen und der Zeiger p zeigt auf dieses Byte und würde p ++ auf 0x2346 erhöht werden? Angenommen, p war 0x2345. Ich spreche von p …
Betrachten Sie das folgende Beispiel: #include <cstdlib> int main() { const int m = 42; [] { m; }(); // OK const int n = std::rand(); [] { n; }(); // error: 'n' is not captured } Warum muss ich nim zweiten Lambda erfassen, aber nicht mim ersten Lambda? Ich …
In C ++ 5.1.1 / 3 [expr.prim.general] heißt es: Der Typ und die Wertekategorie [von this] werden innerhalb einer statischen Elementfunktion definiert. Was bedeutet das? Wie ist es relevant? Beachten Sie, dass: this darf nicht in der Deklaration einer statischen Elementfunktion erscheinen
Darf ich den NULLZeiger als Ersatz für den Wert von verwenden 0? Oder ist daran etwas falsch? Wie zum Beispiel: int i = NULL; als Ersatz für: int i = 0; Als Experiment habe ich folgenden Code kompiliert: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; …
Von http://en.cppreference.com/w/cpp/string/byte/memcpy : Wenn die Objekte nicht TriviallyCopyable sind (z. B. Skalare, Arrays, C-kompatible Strukturen), ist das Verhalten undefiniert. Bei meiner Arbeit haben wir std::memcpylange Zeit Objekte, die nicht TriviallyCopyable sind, bitweise ausgetauscht, indem wir : void swapMemory(Entity* ePtr1, Entity* ePtr2) { static const int size = sizeof(Entity); char swapBuffer[size]; …
Diese Frage wird von mir motiviert, kryptografische Algorithmen (z. B. SHA-1) in C / C ++ zu implementieren, tragbaren plattformunabhängigen Code zu schreiben und undefiniertes Verhalten gründlich zu vermeiden . Angenommen, ein standardisierter Krypto-Algorithmus fordert Sie auf, Folgendes zu implementieren: b = (a << 31) & 0xFFFFFFFF wo aund bsind …
Ist es legal, baumelnde Zeiger zu vergleichen? int *p, *q; { int a; p = &a; } { int b; q = &b; } std::cout << (p == q) << '\n'; Beachten Sie, wie beide pund qauf Objekte zeigen, die bereits verschwunden sind. Ist das legal?
Dieses Codebit wurde in C ++ 20 (mit gcc 10.1) kompiliert, ohne das typenameSchlüsselwort vor dem abhängigen Typ zu verwenden std::vector<T>::iterator. Warum kompiliert es? #include <vector> template<typename T> std::vector<T>::iterator // Why does this not require "typename" before it? f() { return {}; } int main() { auto fptr = &f<int>; …
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.