Articles of c ++ 11

Hat die neue C ++ 11-Elementinitialisierungsfunktion bei der Deklaration die Initialisierungslisten überflüssig gemacht?

Mit C ++ 11 haben wir jetzt die Möglichkeit, classnmitglieder in einer Header-Deklaration zu initialisieren: class aClass { private: int mInt{100}; public: aClass(); ~aClass(); }; Also bin ich ein bisschen verwirrt. Herkömmliche Initialisierungslisten in Konstruktoren wurden für die Initialisierung von Elementen verwendet: aClass::aClass() : mInt(100) { … } Hat die neue C ++ 11-Elementinitialisierungsfunktion bei […]

Wann ist ein privater Konstruktor kein privater Konstruktor?

Angenommen, ich habe einen Typ und möchte den Standardkonstruktor als privat definieren. Ich schreibe folgendes: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class ‘C’ (clang++) // error C2248: ‘C::C’ cannot access private member declared […]

std :: shared_ptr Initialisierung: make_shared () vs shared_ptr (neues Foo)

Was ist der Unterschied zwischen: std::shared_ptr p = std::shared_ptr( new int ); und std::shared_ptr p = std::make_shared(); ? Welchen sollte ich bevorzugen und warum? PS: Ziemlich sicher, das muss schon beantwortet worden sein, aber ich kann keine ähnliche Frage finden.

Konfigurieren des GCC-Compilers schaltet in Qt, QtCreator und QMake

Ich habe kürzlich versucht, Qt Creator 1.3.2, Qt 4.6.2 und GCC 4.4.0 (32-Bit-Version) auf Windows 7 (64-Bit) zu verwenden, um eine Anwendung mit einigen der experimentellen C ++ 0x-Erweiterungen und zu kompilieren den folgenden (schwerwiegenden) Fehler festgestellt: Diese Datei erfordert Compiler- und Bibliotheksunterstützung für den kommenden ISO C ++ – Standard C ++ 0x. Diese […]

Ist #pragma einmal Teil des C ++ 11 Standards?

Traditionell ist / ist die standardmäßige und portable Möglichkeit, mehrfache Header-Einschlüsse in C ++ zu vermeiden, das #ifndef – #define – #endif Pre-Compiler-Direktiven-Schema, auch Makro-Schutz-Schema genannt, zu verwenden (siehe Code-Ausschnitt unten). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP … #endif In den meisten Implementierungen / Compilern (siehe Bild unten) gibt es jedoch eine elegantere Alternative, die dem gleichen […]

Was ist der Unterschied zwischen set und unordered_set in C ++?

Kam über diese gute Frage, die ähnlich ist, aber überhaupt nicht, da es über Java redet, das unterschiedliche Implementierung von Hash-Tabellen hat, aufgrund der synchronisierten Accessor / Mutators Unterschiede zwischen HashMap und Hashtable? Was ist der Unterschied in der C ++ – Implementierung von set und unordered_set? Diese Frage kann natürlich auf map vs unordered_map […]

Warum kann ich diese by-reference (‘& this’) in Lambda nicht erfassen?

Ich verstehe die korrekte Methode, um this (um Objekteigenschaften zu ändern) in einem Lambda wie folgt zu erfassen: auto f = [this] () { /* … */ }; Aber ich bin neugierig auf die folgende Besonderheit, die ich gesehen habe: class C { public: void foo() { // auto f = [] () { // […]

Enum vs Stark typisierte Enum

Ich bin ein Anfänger in C ++ Programmierung. Heute enum ich auf ein neues Thema: stark typisierte enum . Ich habe es ein wenig recherchiert, aber bis jetzt kann ich nicht herausfinden, warum wir das brauchen und was ist das gleiche? Zum Beispiel wenn wir: enum xyz{a, b, c}; /*a = 0, b = 1, […]

Wann ist es notwendig das Flag -stdlib = libstdc ++ zu benutzen?

Wann ist es notwendig, das Flag -stdlib=libstdc++ für den Compiler und den Linker zu verwenden, wenn mit gcc kompiliert wird? Verwendet der Compiler automatisch libstdc ++? Ich benutze Gcc4.8.2 auf Ubuntu 13.10 und ich würde gerne den C ++ 11 Standard verwenden. Ich übergebe bereits -std=c++11 an den Compiler.

Wo ist shared_ptr?

Ich bin jetzt so frustriert, nachdem ich mehrere Stunden versucht habe herauszufinden, wo sich shared_ptr befindet. Keines der Beispiele, die ich sehe, zeigt vollständigen Code, um die Header für shared_ptr (und das Arbeiten) shared_ptr . Einfach tr1 , std , tr1 und hilft überhaupt nicht! Ich habe Boosts heruntergeladen und alles, aber immer noch nicht […]