Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.




3
Wie kann ich ein kartesisches Produkt von Typlisten in C ++ erstellen?
Selbsterklärend. Angenommen, ich habe Typlisten wie folgt: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Sie können eine variable Anzahl von Typlisten sein. Wie erhalte ich eine Typeliste für kartesische Produkte? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, double>, type_list<somestructA, …

2
Initialisierungsliste in std :: pair
Dieser Code: #include <iostream> #include <string> std::pair<std::initializer_list<std::string>, int> groups{ { "A", "B" }, 0 }; int main() { for (const auto& i : groups.first) { std::cout << i << '\n'; } return 0; } Kompiliert, gibt aber segfault zurück. Warum? Getestet auf gcc 8.3.0 und auf Online-Compilern.
26 c++  std  std-pair 

3
Ist es in Ordnung, den Wert des Standardarguments als const-Referenz zurückzugeben?
Ist es in Ordnung, den Wert des Standardarguments per const-Referenz wie in den folgenden Beispielen zurückzugeben: https://coliru.stacked-crooked.com/a/ff76e060a007723b #include <string> const std::string& foo(const std::string& s = std::string("")) { return s; } int main() { const std::string& s1 = foo(); std::string s2 = foo(); const std::string& s3 = foo("s"); std::string s4 = …


4
Makrovergleich der If-Direktive
Warum ist die #ifBedingung im folgenden Code erfüllt: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif // VALUE }

4
STL-Container mit einem bestimmten Typ als generisches Argument
Gibt es eine Möglichkeit, eine Funktion zu erstellen, die einen Container mit einem bestimmten Typ (z. B. std::string) als Parameter verwendet? void foo(const std::container<std::string> &cont) { for(std::string val: cont) { std::cout << val << std::endl; } } und es für jede Art von stl-Container als Eingabe aufrufen? wie oben? std::set<std::string> …


2
Führt der Operator std :: unordered_map [] eine Nullinitialisierung für einen nicht vorhandenen Schlüssel durch?
Laut cppreference.com wird std::map::operator[]für nicht vorhandene Werte eine Nullinitialisierung durchgeführt . Dieselbe Site erwähnt jedoch keine Nullinitialisierung für std::unordered_map::operator[], außer es gibt ein Beispiel, das sich darauf stützt. Natürlich ist dies nur eine Referenzseite, nicht der Standard. Ist der folgende Code in Ordnung oder nicht? #include <unordered_map> int main() { …

2
Ausgewiesene Initialisierer in C ++ 20
Ich habe eine Frage zu einer der C ++ 20-Funktionen, die als Initialisierer bezeichnet werden (weitere Informationen zu dieser Funktion hier ). #include <iostream> constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee : Person { unsigned salary{DEFAULT_SALARY}; }; int main() { std::cout …


3
Was ist der Anwendungsfall für explizite (bool)
In C ++ 20 wurde explizit (bool) eingeführt, das beim Kompilieren bedingt auswählt, ob ein Konstruktor explizit gemacht wird oder nicht. Unten ist ein Beispiel, das ich hier gefunden habe . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template <typename T> explicit(!std::is_integral_v<T>) foo(T) {} …
24 c++  c++20  explicit 

2
Inline-Bedeutung in Modulschnittstellen
Betrachten Sie die Header-Datei: class T { private: int const ID; public: explicit T(int const ID_) noexcept : ID(ID_) {} int GetID() const noexcept { return ID; } }; oder alternativ: class T { private: int const ID; public: explicit T(int const ID_) noexcept; int GetID() const noexcept; }; inline …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.