Tag: language-lawyer

Für Fragen über die Feinheiten der formalen oder maßgebliche Spezifikationen von Programmiersprachen und-Umgebungen.

Lambda Rücksendung selbst: ist das legal?

Anzahl der Antworten 6 Antworten
Betrachten diese ziemlich nutzloses Programm: #include <iostream> int main(int argc, char* argv) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); };

Macht der C-standard erlauben die Zuweisung eines beliebigen Wertes zu einem Zeiger und der Inkrementierung es?

Anzahl der Antworten 5 Antworten
Ist das Verhalten von diesem code definiert? #include <stdio.h> #include <stdint.h> int main(void) { void *ptr = (char *)0x01; size_t val; ptr = (char *)ptr + 1; val = (size_t)(uintptr_t)ptr; printf("%zu\n", val); return 0; } Meine ich,

Ist es sicher, push_back ein element aus der selben Vektor?

Anzahl der Antworten 9 Antworten
vector<int> v; v.push_back(1); v.push_back(v[0]); Wenn die zweite push_back bewirkt eine Umverteilung der Verweis auf die erste Ganzzahl in der Vektor wird nicht mehr gültig sein. Also, das ist nicht sicher? vector<int> v; v.push_back(1); v.reserve(v.size() + 1); v.push_back(v[0]);

Was ist der Unterschied zwischen visibility: hidden und Sichtbarkeit: Einbruch in flexbox?

Anzahl der Antworten 2 Antworten
In der CSS flexible box layout module, es sagt: minimierten flex-Element entfernt vom Rendern ganz, aber hinterlässt ein "Federbein" Nicht, die Verhalten sich genauso wie die visibility: hidden? Wenn die Antwort ja ist, warum dann wurde visibility:

Warum wird der ternäre operator mit Kommas zu bewerten nur ein Ausdruck der wahren Fall?

Anzahl der Antworten 5 Antworten
Ich bin derzeit lernen C++ mit dem Buch C++ Primer und eine der übungen im Buch ist: Erklären, was der folgende Ausdruck gilt: someValue ? ++x, ++y : --x, --y Was wissen wir? Wir wissen, dass der

Bestellung von using namespace std; und enthält?

Anzahl der Antworten 6 Antworten
Vor kurzem sah ich diesen code in eine Quellcode-Datei in ein C++ - Projekt: using namespace std; #include <iostream> Ignorieren Sie alle Fragen, ob es eine gute Idee zu haben using namespace std überhaupt, ist der obige

Dieser code aus "Die C++ Programmiersprache", 4. Auflage § 36.3.6 haben gut definierte Verhalten?

Anzahl der Antworten 2 Antworten
In Bjarne Stroustrup ' s Die Programmiersprache C++ 4. Auflage § 36.3.6 STL-ähnliche Vorgänge Sie den folgenden code als Beispiel verwendet, der Verkettung: void f2() { std::string s = "but I have heard it works even if

Was ist der Zweck einer Deklaration wie int (x); oder int (x) = 10;

Anzahl der Antworten 2 Antworten
Wenn man sich die Grammatik für *declarator*s in §8/4 Sie werden bemerken, dass noptr-declarator kann geschrieben werden als (ptr-declarator), das heißt, es kann geschrieben werden als (declarator-id), die überprüft, Erklärungen wie diejenigen, die in dem Titel. Als

Begrenzung der Anzahl der Argumente zu main in C

Anzahl der Antworten 4 Antworten
Gibt es ein limit für die Anzahl der Argumente, die wir passieren, um main() in C? Wie Sie alle wissen, es ist definiert als int main(int argc, char *argv). Wenn ich das Programm aufrufen, kann ich Argumente

Ist (int *)0 ein null-Zeiger?

Anzahl der Antworten 2 Antworten
Dies könnte gesehen werden als eine Erweiterung diese Frage (ich bin interessiert in C nur, aber hinzufügen von C++ zum Abschluss der Erweiterung) Den C11-standard zu 6.3.2.3.3 sagt: Ein ganzzahliger konstanter Ausdruck mit dem Wert 0, oder

std::ignore mit strukturierten Bindungen?

Anzahl der Antworten 2 Antworten
Prelude: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C++1z einführen syntax für strukturierte Bindungen, die es möglich machen, zu schreiben, anstatt int a, b, c; std::tie(a, b, c) = f(); etwas wie auto [a, b,

Ist "else if" ein single-keyword?

Anzahl der Antworten 8 Antworten
Ich bin neu in C++. Ich sehe oft bedingte Anweisung wie folgt: if statement_0; else if statement_1; Frage: Syntaktisch, soll ich behandeln else if als ein single-keyword? Oder ist es tatsächlich eine verschachtelte if - Anweisung innerhalb

Bedeutet die Angabe constexpr Konstruktor auf automatisch alle Objekte daraus erstellt werden constexpr?

Anzahl der Antworten 3 Antworten
Hier ist mein code: class test{ public: constexpr test(){ } constexpr int operator+(const test& rhs){ return 1; } }; int main(){ test t; //constexpr word isn't necessary constexpr int b = t+test(); //works at compile time! int

Was ist die "callback-Hölle" und wie und warum tut RX es lösen?

Anzahl der Antworten 6 Antworten
Kann jemand eine klare definition zusammen mit einem einfachen Beispiel erklärt, was ein "callback-Hölle" für jemanden, der nicht weiß, JavaScript und node.js ? Wann (in welcher Art von Einstellungen) ist die "callback-Hölle-problem" auftreten? Warum tritt es auf?

Brauchen Sie Hilfe Verständnis, wie \n, \b und \r Rendern von printf () - Ausgabe

Anzahl der Antworten 2 Antworten
Schrieb ich das folgende Programm in C und wenn ich es laufen, ich war überrascht, suchen Sie in der Ausgabe. Hier ist das Programm int main() { printf("\nab"); printf("\bsi"); printf("\rha"); } Die Ausgabe ist :- hai in

reinterpret_cast zwischen char* und std::uint8_t* - sicher?

Anzahl der Antworten 2 Antworten
Nun, wir alle haben manchmal die Arbeit mit binären Daten. In C++ arbeiten wir mit Sequenzen von bytes, und seit Anfang char war das unser Baustein. Definiert sizeof 1, es ist das byte. Und alle library-I/O-Funktionen verwenden

Warum char ist 1 byte in der C-Sprache

Anzahl der Antworten 6 Antworten
Warum ist ein char 1 byte lang in C? Warum ist es nicht 2 bytes oder 4 bytes lang? Was ist die grundlegende Logik dahinter, dass es so 1 byte? Ich weiß, in Java ist eine char

Warum war das Leerzeichen nicht gewählt für C++14-stellige Separatoren?

Anzahl der Antworten 7 Antworten
Als von C++14, Dank n3781 (die in sich selbst keine Antwort auf diese Frage) vielleicht schreiben wir einen code wie den folgenden: const int x = 1'234; //one thousand two hundred and thirty four Ziel ist die

Wie importieren Sie eine enum in einem anderen namespace in C++?

Anzahl der Antworten 5 Antworten
Habe ich eine enum in einem namespace, und ich möchte es verwenden, als ob es waren in einem anderen namespace. Intuitiv dachte ich mir, ich könnte 'mit' oder 'typedef', um dies zu erreichen, aber weder wirklich funktionieren.

Ist der Betrieb "false" < "wahr" auch definiert?

Anzahl der Antworten 4 Antworten
Funktioniert die C++ - Spezifikation definieren: der Existenz der "kleiner als" operator für boolean-Parameter, und wenn ja, das Ergebnis der 4-parameter-Permutationen? In anderen Worten, sind die Ergebnisse aus den folgenden Operationen definiert, die von der Spezifikation? false

In CSS Flexbox, warum gibt es keine "rechtfertigen-Elemente" und "rechtfertigen-selbst" - Eigenschaften?

Anzahl der Antworten 4 Antworten
Betrachten die Hauptachse und die Querachse von einem flex-container:                                                                                                                        Source: W3C Ausrichten flex-Elemente entlang der Hauptachse gibt es eine Eigenschaft: rechtfertigen-content Ausrichten flex-Elemente entlang der Querachse gibt es drei Eigenschaften: align-content align-items align-self In dem Bild oben,

Ist `lange` garantiert mindestens 32 bit?

Anzahl der Antworten 5 Antworten
Durch meine Lektüre der C++ - Standard, habe ich immer so verstanden, dass die Größen der integralen fundamentalen Datentypen in C++ wurden Sie wie folgt vor: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) Ich folgerte

Ist das Verhalten von i = i++ wirklich undefiniert?

Anzahl der Antworten 8 Antworten
Mögliche Duplikate: Kann jemand erklären, diese undefinierten Verhalten (i = i++ + ++i , i = i++, etc...) Laut c++ - standard, i = 3; i = i++; führt zu undefiniertem Verhalten. Verwenden wir den Begriff "Undefiniertes

Rein virtuelle Funktionen können nicht inline-definition. Warum?

Anzahl der Antworten 5 Antworten
Reine virtuelle Funktionen sind die Funktionen, die virtuelle und die pure-Planer ( = 0; ) Ziffer 10.4 Absatz 2 von C++03 die uns sagt, was eine abstrakte Klasse ist und als eine Randnotiz, die folgenden: [Hinweis: eine

Der eindimensionale Zugriff auf ein mehrdimensionales array: ist es gut definiert Verhalten?

Anzahl der Antworten 4 Antworten
Ich vorstellen, wir sind uns alle einig, dass es als idiomatischer C, um den Zugriff auf eine multidimensionale Arrays dereferenzieren eines (evtl offset) Zeiger auf erstes element in a one-dimensional Mode, z.B.: void clearBottomRightElement(int *array, int M,

Wann kommt den Aufruf einer member-Funktion auf eine null-Instanz nicht definiertes Verhalten zur Folge?

Anzahl der Antworten 2 Antworten
Betrachten Sie den folgenden code: #include <iostream> struct foo { //(a): void bar() { std::cout << "gman was here" << std::endl; } //(b): void baz() { x = 5; } int x; }; int main() { foo*

Wann sollte ich die Verwendung von @classmethod und wenn def Methode(self)?

Anzahl der Antworten 2 Antworten
Während die Integration einer Django-app habe ich nicht vor, ich fand zwei verschiedene Möglichkeiten verwendet, um zu definieren, Funktionen in Klassen. Der Autor scheint sich sehr bewusst. Die erste ist eine, die ich selbst verwende eine Menge:

Ist es garantiert sicher durchführen memcpy(0,0,0)?

Anzahl der Antworten 4 Antworten
Ich bin nicht so versiert in C-standard, also bitte Geduld mit mir. Ich würde gerne wissen, ob es garantiert ist, durch die Norm, dass memcpy(0,0,0) ist sicher. Die einzige Einschränkung, die ich finden konnte, ist, dass, wenn

Zugriff auf inaktiv union-Mitglied und Undefiniertes Verhalten?

Anzahl der Antworten 5 Antworten
War ich unter dem Eindruck, dass der Zugriff auf eine union Mitglied anderer als der Letzte gesetzt wird UB, aber ich kann nicht scheinen zu finden, eine solide Referenz (eine andere als Antworten zu fordern, es ist

int a[] = {1,2,}; Seltsame Komma erlaubt. Irgendein besonderer Grund?

Anzahl der Antworten 19 Antworten
Vielleicht bin ich nicht von diesem Planeten, aber es scheint mir, daß das folgende ein Syntaxfehler: int a = {1,2,}; //extra comma in the end Aber es ist nicht. Ich war überrascht, als Sie diesen code kompiliert

Fehler bei der Verwendung von in-class initialization of non-static data member und verschachtelten Konstruktor der Klasse

Anzahl der Antworten 2 Antworten
Folgende code ist ziemlich trivial und ich erwartete, dass sollte es kompilieren in Ordnung. struct A { struct B { int i = 0; }; B b; A(const B& _b = B()) : b(_b) {} }; Getestet

kann variable definition von non-literal type-in constexpr-Funktion Körper c++14?

Anzahl der Antworten 1 Antworten
Ich denke, dass in C++14 mehr restrictives entfernt von constexpr. Aber nach N3797 7.1.5 3-punct: Die definition eines contexpr Funktion shal erfüllen die folgenden Einschränkungen: es darf nicht sein, virtuelle der Rückgabetyp ist ein literal-Typ; jedem Ihrer

überlastung postfix-und Präfix-Operatoren

Anzahl der Antworten 4 Antworten
bitte beachten Sie folgenden code #include <iostream> using namespace std; class Digit { private: int m_digit; public: Digit(int ndigit=0){ m_digit=ndigit; } Digit& operator++();//prefix Digit& operator--(); //prefix Digit operator++(int); Digit operator--(int); int get() const { return m_digit;} };

Unterdrücken der Warnung nicht verwendete variable in C++ => Compiler-Fehler oder code-Fehler??

Anzahl der Antworten 5 Antworten
Derzeit bin ich mit der folgenden Funktion template zu unterdrücken, nicht verwendete variable Warnhinweise: template<typename T> void unused(T const &) { /* Do nothing. */ } Jedoch bei der Portierung auf cygwin von Linux, ich bin jetzt

Wann müssen wir einen default-Konstruktor?

Anzahl der Antworten 7 Antworten
Meine Frage ist einfach. Wann müssen wir einen default-Konstruktor? Bitte entnehmen Sie den folgenden code: class Shape { int k; public: Shape(int n) : k(n) {} ~Shape() {} }; class Rect : public Shape { int l;

Schreiben ist &str[0] buffer (std:string) wohldefiniertes Verhalten in C++11?

Anzahl der Antworten 1 Antworten
char hello = "hello world"; std::string str; str.resize(sizeof(hello)-1); memcpy(&str[0], hello, sizeof(hello)-1); Dieser code Undefiniertes Verhalten in C++98. Ist es legal, in C++11? InformationsquelleAutor der Frage cubuspl42 | 2014-08-06

Was aus i = i++ + 1; legal in C++17?

Anzahl der Antworten 3 Antworten
Bevor Sie beginnen zu Schreien Undefiniertes Verhalten, das ist explizit aufgelistet in N4659 (C++17) i = i++ + 1; //the value of i is incremented Doch in N3337 (C++11) i = i++ + 1; //the behavior is

C++ - Funktion Rückkehr-Funktion

Anzahl der Antworten 5 Antworten
Wo in der Norm sind die Funktionen zurückgeben Funktionen, die zurückgewiesen? Ich verstehe, Sie sind im Prinzip lächerlich, aber es scheint mir, dass die Grammatik erlauben würde. Laut dieser Webseite, einen "noptr-Deklarator [ist] jeder gültige Feststellung" gehören

Die Verwendung von typename-Schlüsselwort typedef und neue

Anzahl der Antworten 3 Antworten
Betrachten Sie diesen code, template<class T> struct Sample { typename T::X *x; //declare pointer to T's X }; In dem obigen code, das Schlüsselwort typename erforderlich ist, durch den compiler, so dass es keine Verwechslungen zwischen den

Löschen von Vektor::Ende von Vektor

Anzahl der Antworten 3 Antworten
Funktioniert es korrekt(macht nix), wenn ich vector<T> v; v.erase(v.end()); Möchte ich so etwas wie v.erase(std::find(...)); Sollte ich if ist es v.end() oder nicht? Es gibt keine info darüber auf C++.com und CPPreference InformationsquelleAutor der Frage RiaD |

Fortran: ganze Zahl * 4 gegen ganze Zahl (4) gegen ganze Zahl (Art = 4)

Anzahl der Antworten 2 Antworten
Ich versuche zu lernen von Fortran und ich sehe eine Menge unterschiedlicher Definitionen, herumgereicht zu werden und ich Frage mich, ob Sie versuchen zu erreichen, die gleiche Sache. Was ist der Unterschied zwischen folgenden? integer*4 integer(4) integer(kind=4)

Darstellung negativer Zahlen in C?

Anzahl der Antworten 4 Antworten
Wie funktioniert C repräsentieren den negativen ganzen zahlen? Ist es durch die Zweierkomplement-Darstellung oder mit der MSB (most significant bit)? -1 in hexadezimal ist ffffffff. Also bitte klären Sie das für mich. InformationsquelleAutor der Frage 1s2a3n4j5e6e7v |

Unvollständig geben Sie den verschachtelten Namenspezifizierer ein

Anzahl der Antworten 1 Antworten
Ich versuche mit unvollständigen Typ in der nested-name-specifier wie folgt: class A; int b= A::c; //error: incomplete type ‘A’ used in nested name specifier class A { static const int c=5; }; Es sagt nichts über es

Verwenden Sie für das Argument std :: bind mit der Member-Funktion Objektzeiger oder nicht?

Anzahl der Antworten 3 Antworten
Bei der Verwendung std::bind zum binden einer member-Funktion das erste argument ist die Objekte this Zeiger. Aber es funktioniert übergeben das Objekt sowohl als Zeiger und nicht. Finden Sie zum Beispiel folgende Programm: #include <iostream> #include <functional>

Gültige, aber wertlose Syntax im Switch-Case?

Anzahl der Antworten 8 Antworten
Durch einen kleinen Tippfehler, den ich zufällig fand dieses Konstrukt: int main(void) { char foo = 'c'; switch(foo) { printf("Cant Touch This\n"); //This line is Unreachable case 'a': printf("A\n"); break; case 'b': printf("B\n"); break; case 'c': printf("C\n");

Sind Int8_t und Uint8_t Char-Typen?

Anzahl der Antworten 5 Antworten
Gegeben, der C++11-Programm, sollte ich erwarten, um zu sehen, eine Zahl oder ein Buchstabe? Oder nicht den Erwartungen? #include <cstdint> #include <iostream> int main() { int8_t i = 65; std::cout << i; } Nicht den standard angeben,

Warum ruft die linke Verschiebungsoperation Undefined Behavior auf, wenn der linke Operand einen negativen Wert hat?

Anzahl der Antworten 8 Antworten
In C bitweisen Verschiebung nach Links ruft Undefiniertes Verhalten, wenn die linke Seite operand hat negativen Wert. Relevantes Zitat aus der ISO C99 (6.5.7/4) Das Ergebnis von E1 << E2 E1 Links verschoben E2 bit-Positionen; freigewordenen bits

Starten C ++ bei 0?

Anzahl der Antworten 3 Antworten
Wenn ich eine enum dass nicht die Nummern vergeben, um die Enumerationen, wird es ordinalen Wert 0 sein? Zum Beispiel: enum enumeration { ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE }; Habe ich in

Was ist "Callback-Hölle" und wie und warum löst RX es?

Anzahl der Antworten 5 Antworten
Kann jemand eine klare definition zusammen mit einem einfachen Beispiel erklärt, was ein "callback-Hölle" für jemanden, der nicht weiß, JavaScript und node.js ? Wann (in welcher Art von Einstellungen) ist die "callback-Hölle-problem" auftreten? Warum tritt es auf?

Brauchen wir wirklich "Enum-Klasse" in C ++ 11?

Anzahl der Antworten 5 Antworten
Wenn wir haben, struct E { enum E_ { HELLO }; }; //'E' is inheritable dann warum brauchen wir, enum class E { HELLO }; //'E' is not inheritable IMO-2. version nicht mehr Funktionen als der 1.