Suchergebnisse für Anfrage "most-vexing-parse"

1 die antwort

Gibt es einen Unterschied zwischen `List x;` und `List x ()`?

Der Titel stammt von der berühmten StätteC ++ FAQ von Marshall Cline.Der Autor behauptet, dass es einen Unterschied zwischen den folgenden beiden Codebeispie...

1 die antwort

Warum benötigen anonyme Objekte manchmal einen Standardkonstruktor?

Wenn ich das folgende Programm schreibe, funktioniert es wie erwartet: struct Foo { Foo (std::string x) { std::cout << x << std::endl; } }; int main () { Foo("hello, world"); }Wenn ich jedoch ein etwas anderes Programm schreibe, erhalte ich ...

2 die antwort

Grundlegendes zum "ärgerlichsten Parsen" - warum mehrdeutige Syntax zulassen?

Beim Versuch, das Problem der &quot;lästigsten Analyse&quot; in C / C ++ zu verstehen, fällt mir sofort diese Frage ein: Warum gibt es eine Syntax, die diese...

TOP-Veröffentlichungen

2 die antwort

C ++ 11 Unterschied in Konstruktoren (geschweifte Klammern)

Ich bin ziemlich neu in C ++ und habe festgestellt, dass die folgenden Codezeilen anders funktionieren MyClass c1; c1.do_work() //works MyClass c2(); c2.do_work() //compiler error c2228: left side is not a class, structure, or union. MyClass ...

2 die antwort

Wie ist das eine äußerst ärgerliche Analyse?

Ich habe das durchgemachtArtike [http://herbsutter.com/2013/05/09/gotw-1-solution/] und es gibt eine Aussage in Punkt 3 mit der Aufschrift // C++98 rectangle w( origin(), extents() ); // oops, vexing parsehow ist das oben eine sehr ärgerliche ...

4 die antwort

Standardkonstruktor c ++

Ich versuche zu verstehen, wie der Standardkonstruktor (vom Compiler bereitgestellt, wenn Sie keinen schreiben) im Vergleich zu Ihrem eigenen Standardkonstruktor funktioniert. So habe ich zum Beispiel diese einfache Klasse geschrieben: class A ...

4 die antwort

Konstruktion des temporären Funktionsaufrufs wird als Deklaration interpretiert

In letzter Zeit bin ich auf ein Problem gestoßen, das mir irgendwie (aber nur irgendwie) Sinn macht. Es basiert auf der Interpretation der Konstruktion einer temporären Variable als Deklaration des einzelnen (!) Konstruktorarguments. Bitte sehen ...

4 die antwort

g ++ lehnt ab, clang ++ akzeptiert: foo (x) ("bar") ("baz");

Jemand hattefragt [https://stackoverflow.com/questions/28254915/code-compiles-with-clang-but-not-with-gcc/28255085] neulich wieso kompiliert sowas mit clang, aber nicht mit gcc. Ich verstand intuitiv, was passierte, und konnte der Person helfen, ...

4 die antwort

Warum erlaubt uns C ++, den Variablennamen beim Deklarieren einer Variablen in Klammern zu setzen?

Zum Beispiel eine Erklärung wie die folgende: int (x) = 0;Oder auch das: int (((x))) = 0;Ich bin darauf gestoßen, weil ich in meinem Code zufällig ein Fragment ähnlich dem folgenden hatte: struct B { }; struct C { C (B *) {} void f () {}; }; ...

6 die antwort

Warum gibt es keinen Aufruf an den Konstruktor? [Duplikat

Diese Frage hat hier bereits eine Antwort: Standardkonstruktor mit leeren Klammern [/questions/180172/default-constructor-with-empty-brackets] 9 answersDieser Code verhält sich nicht so, wie ich es erwartet habe. #include<iostream> using ...