class my_class { ... my_class(my_class const &) = delete; ... }; Was bedeutet = deletedas in diesem Zusammenhang? Gibt es andere "Modifikatoren" (außer = 0und = delete)?
Kam auf einen Vorschlag namens "rvalue reference for * this" auf der C ++ 11- Statusseite von clang . Ich habe ziemlich viel über rvalue-Referenzen gelesen und verstanden, aber ich glaube nicht, dass ich davon weiß. Ich konnte mit den Begriffen auch nicht viele Ressourcen im Web finden. Es gibt …
std::unique_ptr unterstützt Arrays, zum Beispiel: std::unique_ptr<int[]> p(new int[10]); aber wird es gebraucht? wahrscheinlich ist es bequemer zu bedienen std::vectoroder std::array. Finden Sie eine Verwendung für dieses Konstrukt?
Ich habe eine interessante Leistungsregression in einem kleinen C ++ - Snippet gefunden, wenn ich C ++ 11 aktiviere: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { …
C ++ 11-Vektoren haben die neue Funktion emplace_back. Im Gegensatz push_backzu Compiler-Optimierungen, um Kopien zu vermeiden, wird emplace_backdie perfekte Weiterleitung verwendet, um die Argumente direkt an den Konstruktor zu senden und ein Objekt an Ort und Stelle zu erstellen. Es scheint mir, dass emplace_backalles alles push_backkann, aber manchmal wird es …
Ich kann sehen, warum der autoTyp in C ++ 11 die Korrektheit und Wartbarkeit verbessert. Ich habe gelesen, dass es auch die Leistung verbessern kann ( Fast immer automatisch von Herb Sutter), aber ich vermisse eine gute Erklärung. Wie kann autodie Leistung verbessert werden? Kann jemand ein Beispiel geben?
Gibt es in C ++ 11 eine Möglichkeit, eine Lambda-Funktion vorzulegen? Oder ist es von Natur aus zu spezifisch, um als Vorlage verwendet zu werden? Ich verstehe, dass ich stattdessen eine klassische Klasse / einen klassischen Funktor mit Vorlagen definieren kann, aber die Frage lautet eher: Erlaubt die Sprache das …
Ok, das letzte Mal, als ich C ++ für std::auto_ptrmeinen Lebensunterhalt schrieb, war alles, was die Standardbibliothek zur Verfügung hatte, und boost::shared_ptrwar der letzte Schrei. Ich habe mich nie wirklich mit den anderen Boosts für intelligente Zeigertypen befasst. Ich verstehe, dass C ++ 11 jetzt einige der Typen bietet, die …
Ich weiß, dass mindestens eine der Änderungen in C ++ 11 dazu führt, dass ein alter Code nicht mehr kompiliert wird: die Einführung explicit operator bool()in die Standardbibliothek, die alte Instanzen von ersetzt operator void*(). Zugegeben, der Code, den dies beschädigen wird, ist wahrscheinlich Code, der eigentlich nicht gültig sein …
Soweit ich weiß, die Einführung von override Schlüsselworts in C ++ 11 nichts anderes als eine Überprüfung, um sicherzustellen, dass die implementierte Funktion die Funktion overrideeiner virtualFunktion in der Basisklasse ist. Ist es das?
Ich habe defaultneben Funktionsdeklarationen in einer Klasse verwendet gesehen. Was tut es? class C { C(const C&) = default; C(C&&) = default; C& operator=(const C&) & = default; C& operator=(C&&) & = default; virtual ~C() { } };
Ich habe das neue autoSchlüsselwort verwendet, das im C ++ 11-Standard für komplizierte Vorlagen verfügbar ist. Ich glaube, es wurde dafür entwickelt. Aber ich benutze es auch für Dinge wie: auto foo = std::make_shared<Foo>(); Und skeptischer für: auto foo = bla(); // where bla() return a shared_ptr<Foo> Ich habe nicht …
Was ist los mit diesem Programm? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } Der Fehler: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …
Warum gibt es std::make_uniquein der Standard-C ++ 11-Bibliothek keine Funktionsvorlage? ich finde std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); ein bisschen ausführlich. Wäre das Folgende nicht viel schöner? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Dies verbirgt das newschön und erwähnt den Typ nur einmal. Wie auch immer, hier ist mein Versuch einer …
Beim Lesen einiger Beispiele für bereichsbasierte Schleifen schlagen sie zwei Hauptmethoden vor: 1 , 2 , 3 , 4 std::vector<MyClass> vec; for (auto &x : vec) { // x is a reference to an item of vec // We can change vec's items by changing x } oder for (auto …
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.