C ++ 20 ist das Ziel für die Version von C ++ nach C ++ 17. Dieses Tag sollte (zusammen mit dem C ++ - Tag) für Fragen zu C ++ - Funktionen verwendet werden, die für C ++ 20 auf dem richtigen Weg sind.
Im Gegensatz zu allen anderen ähnlichen Fragen geht es bei dieser Frage um die Verwendung der neuen C ++ - Funktionen. 2008 c Gibt es eine einfache Möglichkeit, die C ++ - Aufzählung in einen String umzuwandeln? 2008 c Einfache Möglichkeit, Variablen von Aufzählungstypen als Zeichenfolge in C zu verwenden? …
Kürzlich habe ich Vorschläge zur Verwendung von span<T>'s in meinem Code erhalten oder hier auf der Website einige Antworten gesehen, die span' s 'verwenden - angeblich eine Art Container. Aber - ich kann so etwas in der C ++ 17-Standardbibliothek nicht finden. Was ist das mysteriös span<T>und warum (oder wann) …
Während ich versuche , darüber zu erfahren , C ++ Operatoren, stieß ich auf einem seltsamen Vergleichsoperator auf cppreference.com , * in einer Tabelle , die wie folgt aussah: "Nun, wenn dies in C ++ übliche Operatoren sind, lerne ich sie besser", dachte ich. Aber alle meine Versuche, dieses Rätsel …
Eine der Ecken von C ++ 20-Konzepten ist, dass es bestimmte Situationen gibt, in denen Sie schreiben müssen requires requires. Zum Beispiel dieses Beispiel aus [expr.prim.req] / 3 : Ein Requires-Ausdruck kann auch in einer Requires-Klausel ([temp]) verwendet werden, um Ad-hoc-Einschränkungen für Vorlagenargumente wie das folgende zu schreiben: template<typename T> …
Eine etwas seltsame Frage: Wenn ich mich richtig erinnere, benötigt der C ++ - Quellcode kein Dateisystem, um seine Dateien zu speichern. Ein Compiler, der handgeschriebene Papiere über eine Kamera scannt, wäre eine konforme Implementierung. Obwohl praktisch nicht so viel Sinn macht. C ++ 20 fügt jetzt jedoch den Quellspeicherort …
Was sind Coroutinen in c ++ 20? Inwiefern unterscheidet es sich von "Parallelism2" oder / und "Concurrency2" (siehe Bild unten)? Das folgende Bild stammt von ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
C ++ 20 führte die std::ssize()freie Funktion wie folgt ein: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Eine mögliche Implementierung scheint zu verwenden static_cast, um den Rückgabewert der size()Mitgliedsfunktion von cl ass C in sein vorzeichenbehaftetes Gegenstück umzuwandeln . Da die size()Mitgliedsfunktion von C immer nicht …
c ++ 14 führte generische Lambdas ein, die es ermöglichten, Folgendes zu schreiben: auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); Es ist sehr klar, dass dieses generische Lambda funcgenau so funktioniert, wie eine Vorlagenfunktion funktionieren …
Mir wurde gesagt, dass der folgende Code bis C ++ 20 ein undefiniertes Verhalten aufweist: int *p = (int*)malloc(sizeof(int)); *p = 10; Ist das wahr? Das Argument war, dass die Lebensdauer des intObjekts nicht vor dem Zuweisen des Werts gestartet wird ( P0593R6 ). Um das Problem zu beheben, newsollte …
Dieses Codebit wurde in C ++ 20 (mit gcc 10.1) kompiliert, ohne das typenameSchlüsselwort vor dem abhängigen Typ zu verwenden std::vector<T>::iterator. Warum kompiliert es? #include <vector> template<typename T> std::vector<T>::iterator // Why does this not require "typename" before it? f() { return {}; } int main() { auto fptr = &f<int>; …
Ich habe ein seltsames Verhalten mit dem neuen Raumschiffoperator <=>in C ++ 20. Ich verwende den Visual Studio 2019-Compiler mit /std:c++latest. Dieser Code wird wie erwartet gut kompiliert: #include <compare> struct X { int Dummy = 0; auto operator<=>(const X&) const = default; // Default implementation }; int main() { …
Nach cppreference , std::type_info::operator!=wird mit C ++ entfernt 20 jedoch std::type_info::operator==bleibt offenbar. Was ist der Grund dafür? Ich könnte zustimmen, dass ein Vergleich auf Ungleichheit bedeutungslos ist, aber ein Vergleich auf Gleichheit wäre genauso bedeutungslos, nicht wahr? In ähnlicher Weise werden operator!=von vielen anderen Standardbibliothekstypen, einschließlich Containern wie std::unordered_map::operator!=und std::unordered_set::operator!=in …
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 …
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.