Articles of c ++ 11

Hat sich der C ++ – Standard in Bezug auf die Verwendung von unbestimmten Werten und undefiniertem Verhalten in C ++ 14 geändert?

Wie behandelt in Ist die Initialisierung eine Lvalue-to-Rvalue-Konvertierung? Ist int x = x; UB? Der C ++ – Standard hat ein überraschendes Beispiel in Abschnitt 3.3.2 Deklarationspunkt, in dem ein int mit seinem eigenen unbestimmten Wert initialisiert wird: int x = 12; { int x = x; } Hier wird das zweite x mit einem […]

Wie aktiviert man C ++ 11 / C ++ 0x Unterstützung in Eclipse CDT?

Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2 Dies ist ein Beispiel für einen Teil von C ++ 11-Code: auto text = std::unique_ptr(new char[len]); Der Eclipse-Editor klagt über: Function ‘unique_ptr’ could not be resolved Die Makefile-Kompilierung funktioniert einwandfrei. Wie kann Eclipse aufhören, sich über diese Art von Fehlern zu beschweren?

Was ist “rvalue Referenz für * das”?

Ein Vorschlag namens “rvalue reference for * this” in clangs C ++ 11 Statusseite. Ich habe ziemlich viel über Rvalue-Referenzen gelesen und sie verstanden, aber ich glaube nicht, dass ich davon weiß. Mit den Begriffen konnte ich auch nicht viele Ressourcen im Web finden. Es gibt einen Link zu dem Vorschlagspapier auf der Seite: N2439 […]

Vorteile der Verwendung von vorwärts

Bei der perfekten Weiterleitung wird std::forward verwendet, um die benannten rvalue-Referenzen t1 und t2 in unbenannte rvalue-Referenzen zu konvertieren. Was ist der Zweck, das zu tun? Wie würde das die aufgerufene function inner wenn wir t1 und t2 als lvalues ​​belassen? template void outer(T1&& t1, T2&& t2) { inner(std::forward(t1), std::forward(t2)); }

“Entpacken” eines Tupel, um einen passenden functionszeiger aufzurufen

Ich versuche, in einem std::tuple eine variierende Anzahl von Werten zu speichern, die später als Argumente für einen Aufruf eines functionszeigers verwendet werden, der den gespeicherten Typen entspricht. Ich habe ein vereinfachtes Beispiel für das Problem erstellt, für das ich Probleme habe zu lösen: #include #include void f(int a, double b, void* c) { std::cout […]

Warum schlägt das Lesen von struct fields aus std :: istream fehl, und wie kann ich das beheben?

Angenommen, wir haben folgende Situation: Eine Record-Struktur wird wie folgt deklariert struct Person { unsigned int id; std::string name; uint8_t age; // … }; Datensätze werden in einer Datei im folgenden Format gespeichert: ID Forename Lastname Age —————————— 1267867 John Smith 32 67545 Jane Doe 36 8677453 Gwyneth Miller 56 75543 J. Ross Unusual 23 […]

Pretty-Print C ++ STL-Container

Bitte beachten Sie die Updates am Ende dieses Posts. Update: Ich habe ein öffentliches Projekt auf GitHub für diese Bibliothek erstellt! Ich hätte gerne eine einzige Vorlage, die ein für allemal dafür sorgt, dass alle STL-Container über den operator<< hübsch gedruckt werden. Im Pseudocode suche ich in etwa so: template std::ostream & operator<<(std::ostream & o, […]

Was sind rvalues, lvalues, xvalues, glvalues ​​und prvalues?

In C ++ 03 ist ein Ausdruck entweder ein R-Wert oder ein L-Wert . In C ++ 11 kann ein Ausdruck ein rvalue Wert xwert glvalue Prvalue Aus zwei Kategorien sind fünf Kategorien geworden. Was sind diese neuen Kategorien von Ausdrücken? Wie hängen diese neuen Kategorien mit den vorhandenen Kategorien rvalue und lvalue zusammen? Sind […]

Starten Sie den Thread mit der Elementfunktion

Ich versuche, einen std::thread mit einer std::thread zu konstruieren, die keine Argumente annimmt und void zurückgibt. Ich kann keine Syntax herausfinden, die funktioniert – der Compiler beklagt sich, egal was passiert. Was ist der richtige Weg, um spawn() zu implementieren, so dass es einen std::thread zurückgibt, der test() ausführt? #include class blub { void test() […]

Die Regel der Drei wird mit C ++ 11 zur Fünf-Regel?

Nachdem ich mir diese wunderbare Vorlesung über Rvalue-Referenzen angeschaut hatte, dachte ich, dass jede class von einem solchen “Move Constructor”, template MyClass(T&& other) bearbeiten und natürlich einem “move assignment operator”, template MyClass& operator=(T&& other) profitieren würde template MyClass& operator=(T&& other) wie Philipp in seiner Antwort darauf hinweist, ob es Mitglieder dynamisch zugeordnet hat oder generell […]