C ++ 14 ist der Name des 2014 genehmigten C ++ - Standards. Er baut auf dem vorherigen C ++ 11-Standard auf, verbessert die Kernsprache und die Standardbibliothek und fügt einige Funktionen hinzu.
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 …
Als ich Seastar-Quellcode las , bemerkte ich, dass es eine Gewerkschaftsstruktur namens gibt, tx_sidedie nur ein Mitglied hat. Ist das ein Hack, um ein bestimmtes Problem zu lösen? Zu Ihrer Information, ich füge die folgende tx_sideStruktur ein: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; …
Ich arbeite mit der Erinnerung an einige Lambdas in C ++, aber ich bin ein bisschen verwirrt über ihre Größe. Hier ist mein Testcode: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << …
Ich versuche, das folgende Thread-Pool-Programm zu kompilieren, das bei der Codeüberprüfung veröffentlicht wurde, um es zu testen. /codereview/55100/platform-independant-thread-pool-v4 Aber ich bekomme die Fehler threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: …
Die Beschreibung von std::is_voidbesagt, dass: Gibt den Wert der Elementkonstante an, der gleich true ist, wenn T vom Typ void, const void, volatile void oder const volatile void ist. Was könnte dann sein const voidoder ein volatile void? Diese Antwort besagt, dass der const voidRückgabetyp ungültig wäre (kompiliert jedoch unter …
Ich bin sehr verwirrt über Wert- & Standard- & Null-Initialisierung. und vor allem, wenn sie sich für die verschiedenen Standards C ++ 03 und C ++ 11 (und C ++ 14 ) einsetzen. Ich zitiere und versuche, eine wirklich gute Antwort Value- / Default- / Zero-Init C ++ 98 und …
(In Bezug auf diese Frage und Antwort .) Vor dem C ++ 17-Standard war der folgende Satz in [basic.compound] / 3 enthalten : Befindet sich ein Objekt vom Typ T an einer Adresse A, so soll ein Zeiger vom Typ cv T *, dessen Wert die Adresse A ist, auf …
Ich habe eine Komponente, die ich verwende, wenn ich generische Typen auf niedriger Ebene implementiere, die ein Objekt eines beliebigen Typs speichern (kann ein Klassentyp sein oder nicht), das leer sein kann, um die Optimierung der leeren Basis zu nutzen : template <typename T, unsigned Tag = 0, typename = …
Ich habe einen (C ++ 14) Code, der so aussieht: map<int, set<string>> junk; for (int id : GenerateIds()) { try { set<string> stuff = GetStuff(); junk[id] = stuff; } catch (const StuffException& e) { ... } } Das funktioniert. Löst manchmal GetStuff()eine Ausnahme aus, die gut funktioniert, da ich dann …
Wenn ich ein std :: -Array wie folgt initialisiere, warnt mich der Compiler vor fehlenden geschweiften Klammern std::array<int, 4> a = {1, 2, 3, 4}; Dies behebt das Problem: std::array<int, 4> a = {{1, 2, 3, 4}}; Dies ist die Warnmeldung: missing braces around initializer for 'std::array<int, 4u>::value_type [4] {aka …
Ich versuche herauszufinden, wie man die Adresse einer Lambda-Funktion in sich selbst erhält. Hier ist ein Beispielcode: []() { std::cout << "Address of this lambda function is => " << ???? }(); Ich weiß, dass ich das Lambda in einer Variablen erfassen und die Adresse drucken kann, aber ich möchte …
Ich arbeite in einem Projekt mit C ++ 11 und habe versucht, folgenden Code zu verwenden #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } Ich bekomme den Compilerfehler error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]' std::atomic_int idx = …
Ich fand heraus, dass lvalueLambda-Verschlüsse immer als rvalueFunktionsparameter übergeben werden können. Siehe die folgende einfache Demonstration. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: passing a …
Gibt es eine Möglichkeit, in C ++ 11 zu überprüfen, ob eine Aufzählung fortlaufend ist ? Es ist voll gültig, eine Aufzählung anzugeben, die nicht sind. Gibt es möglicherweise eine Funktion wie ein Typmerkmal in C ++ 14, C ++ 17 oder C ++ 20, um zu überprüfen, ob die …
Ich habe eine Funktionsvorlage, die viele verschiedene Typen als Eingabe verwendet. Von diesen Typen hat nur einer eine getInt()Funktion. Daher möchte ich, dass der Code die Funktion nur für diesen Typ ausführt. Bitte schlagen Sie eine Lösung vor. Vielen Dank #include <type_traits> #include <typeinfo> class X { public: int getInt(){ …
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.