In Herb Sutters CppCon 2014-Vortrag Zurück zu den Grundlagen: Moderner C ++ - Stil verweist er auf Folie 28 ( eine Webkopie der Folien finden Sie hier ) auf dieses Muster: class employee { std::string name_; public: void set_name(std::string name) noexcept { name_ = std::move(name); } }; Er sagt, dass …
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 habe den zweiten Teil von Walter Browns CppCon2014-Vortrag über Template-Metaprogrammierung gesehen , in dem er die Verwendung seiner neuartigen void_t<>Konstruktion diskutierte . Während seines Vortrags stellte Peter Sommerlad ihm eine Frage, die ich nicht ganz verstand. (Link geht direkt auf die Frage, der diskutierte Code fand direkt davor statt) …
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 …
Das Thema wurde diskutiert vor , aber dies ist kein Duplikat. Wenn jemand nach dem Unterschied zwischen decltype(a)und fragt , lautet decltype((a))die übliche Antwort: - aist eine Variable, (a)ist ein Ausdruck. Ich finde diese Antwort unbefriedigend. Erstens aist auch ein Ausdruck. Die Optionen für einen primären Ausdruck umfassen unter anderem: …
Angenommen, Sie haben den folgenden Code: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Stellen Sie sich vor, der Vektor ist noch std::stringkeine Klasse: std::vector<Widget> …
In C ++ werden Ganzzahlen mit fester Breite als optional definiert , aber ich kann anscheinend nicht die empfohlene Methode finden, um zu überprüfen, ob sie tatsächlich definiert sind. Was wäre eine tragbare Methode, um zu überprüfen, ob Ganzzahlen mit fester Breite verfügbar sind?
Ich habe festgestellt, dass die Ergebnisse bei Compilern unterschiedlich sind, wenn ich ein Lambda verwende, um einen Verweis auf eine globale Variable mit einem veränderlichen Schlüsselwort zu erfassen und dann den Wert in der Lambda-Funktion zu ändern. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() { int &m …
Angenommen, Sie möchten C ++ - Funktionen <random>in einem praktischen Programm verwenden (für eine Definition von "praktisch" - die Einschränkungen hier sind Teil dieser Frage). Sie haben ungefähr folgenden Code: int main(int argc, char **argv) { int seed = get_user_provided_seed_value(argc, argv); if (seed == 0) seed = std::random_device()(); ENGINE g(seed); …
Wie kann ich im folgenden Code dafür sorgen, dass die kommentierte Zeile genauso funktioniert wie die Zeile direkt darüber? Ich möchte daraus einen generischen Code machen, der einen geeigneten Konstruktor einer Vorlage aufruft Type. #include <string> #include <iostream> template <typename Type> struct Class { Type data; Class(Type data) : data(data) …
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 …
Hier ein Stück C ++ - Code. In diesem Beispiel sehen viele Codeblöcke wie Konstruktoraufrufe aus. Blockcode 3 ist dies leider nicht (Sie können ihn mit https://godbolt.org/z/q3rsxn und https://cppinsights.io überprüfen ). Ich denke, es ist eine alte C ++ - Notation und könnte die Einführung der neuen C ++ 11-Konstruktionsnotation …
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.