In C ++ 11 gibt es verschiedene Vorlagen wie diese: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Hier gibt es einige Kuriositäten: Der Ausdruck std::forward<Args>(args)...verwendet beide Argsund argsnur einen ...Token. Darüber hinaus std::forwardist eine nicht variadische Vorlagenfunktion nur ein Vorlagenparameter und …
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Ich glaube, der Grund dafür ist, dass Arrays nur mit =Syntax initialisiert werden können, dh : int arr[3] = {1,3,4}; Fragen Wie kann ich tun, was ich …
Gemäß den Quellen, die ich gefunden habe, wird ein Lambda-Ausdruck im Wesentlichen vom Compiler implementiert, der eine Klasse mit überladenem Funktionsaufrufoperator und den referenzierten Variablen als Mitglieder erstellt. Dies deutet darauf hin, dass die Größe der Lambda-Ausdrücke variiert und bei ausreichenden Referenzvariablen die Größe beliebig groß sein kann . Ein …
(Hinweis: tupleund tiekann aus Boost oder C ++ 11 übernommen werden.) Wenn ich kleine Strukturen mit nur zwei Elementen schreibe, neige ich manchmal dazu, a zu wählen std::pair, da alle wichtigen Dinge für diesen Datentyp bereits erledigt sind, wie operator<zum Beispiel für strikt schwache Ordnungen . Die Nachteile sind jedoch …
Mit der neuen bereichsbasierten for-Schleife können wir Code wie schreiben for(auto x: Y) {} Welche IMO ist eine enorme Verbesserung von (zum Beispiel) for(std::vector<int>::iterator x=Y.begin(); x!=Y.end(); ++x) {} Kann es verwendet werden, um zwei gleichzeitige Schleifen wie die Pythons- zipFunktion zu durchlaufen ? Für diejenigen, die mit Python nicht vertraut …
Was ist der Unterschied zwischen std::system_clockund std::steady_clock? (Ein Beispielfall, der unterschiedliche Ergebnisse / Verhaltensweisen veranschaulicht, wäre großartig). Wenn mein Ziel genau zu Ausführungszeit von Funktionen (wie ein Benchmark) zu messen, was wäre die beste Wahl zwischen std::system_clock, std::steady_clockund std::high_resolution_clock?
Als ich nach Jahren von C # zu C ++ zurückkehrte, fragte ich mich, wie die moderne Methode zum Filtern eines Arrays aussehen würde: Wie können wir etwas Ähnliches wie diese Linq-Abfrage erreichen: var filteredElements = elements.Where(elm => elm.filterProperty == true); Um einen Vektor von Elementen zu filtern ( stringsum …
Wie kann ich ein std::unique_ptrin eine Funktion übergeben? Nehmen wir an, ich habe folgende Klasse: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; Folgendes wird nicht kompiliert: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal() << endl; } …
Ich habe einen Vektor von IInventory * und durchlaufe die Liste mit dem C ++ 11-Bereich für, um mit jedem etwas zu tun. Nachdem ich einige Dinge mit einem gemacht habe, möchte ich es vielleicht aus der Liste entfernen und das Objekt löschen. Ich weiß, dass ich deleteden Zeiger jederzeit …
Ich möchte wissen, was die semantischen Unterschiede zwischen dem C ++ - Vorschlag für vollständige Konzepte und den Vorlagenbeschränkungen sind (z. B. Einschränkungen, wie sie in Dlang oder im neuen Konzept -Lite-Vorschlag für C ++ 1y enthalten sind ). Was können vollwertige Konzepte, was Template-Einschränkungen nicht können?
C ++ 11 hat einige neue Funktionen zur Konvertierung von Zeichenfolgen hinzugefügt: http://en.cppreference.com/w/cpp/string/basic_string/stoul Es umfasst stoi (string to int), stol (string to long), stoll (string to long long), stoul (string to unsigned long), stoull (string to unsigned long long). Bemerkenswert in seiner Abwesenheit ist eine stou-Funktion (Zeichenfolge zu vorzeichenlos). Gibt …
Darf ich Elemente aus einem verschieben std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Schon seit std::intializer_list<T> besondere Aufmerksamkeit des Compilers erfordert und keine Wertesemantik wie bei normalen Containern der C ++ …
Ich habe angefangen, den C ++ 11-Standard auszuprobieren, und ich habe diese Frage gefunden , die beschreibt, wie Sie Ihren ctor von einem anderen ctor in derselben Klasse aufrufen, um eine init-Methode oder ähnliches zu vermeiden. Jetzt versuche ich dasselbe mit Code, der so aussieht: hpp: class Tokenizer { public: …
Wie würde ich in C ++ 11 vorgehen, um eine Funktion (oder Methode) zu schreiben, die ein std :: -Array bekannten Typs, aber unbekannter Größe verwendet? // made up example void mulArray(std::array<int, ?>& arr, const int multiplier) { for(auto& e : arr) { e *= multiplier; } } // lets …
Angenommen, ich habe drei kompilierte Objekte, die alle von demselben Compiler / derselben Version erstellt wurden : A wurde mit dem C ++ 11-Standard kompiliert B wurde mit dem C ++ 14-Standard kompiliert C wurde mit dem C ++ 17-Standard kompiliert Nehmen wir der Einfachheit halber an, dass alle Header …
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.