https://www.timeanddate.com/date/weekday.html berechnet verschiedene Fakten zu einem Tag des Jahres, zum Beispiel: Wie können diese Zahlen bei einem beliebigen Datum mit der C ++ 20-Chronospezifikation berechnet werden
https://www.timeanddate.com/date/weekday.html berechnet verschiedene Fakten zu einem Tag des Jahres, zum Beispiel: Wie können diese Zahlen bei einem beliebigen Datum mit der C ++ 20-Chronospezifikation berechnet werden
Als ich mir die mögliche Implementierung des same_as-Konzepts unter https://en.cppreference.com/w/cpp/concepts/same_as ansah, bemerkte ich, dass etwas Seltsames passiert. namespace detail { template< class T, class U > concept SameHelper = std::is_same_v<T, U>; } template< class...
Laut cppreference sind die meisten Verwendungen des volatileSchlüsselworts in C ++ 20 veraltet. Was ist der Nachteil von volatile? Und was ist die alternative Lösung, wenn sie nicht verwendet wird
C ++ verwendet den streamoffTyp, um einen Offset innerhalb eines (Datei-) Streams darzustellen, und ist in [stream.types] wie folgt definiert: using streamoff = implementation-defined ; Der Typ Streamoff ist ein Synonym für einen der vorzeichenbehafteten integralen Grundtypen mit...
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 Aufzählung fortlaufend ist?...
Ich spiele mit [[no_unique_address]]in herum c++20. Im Beispiel für cppreference haben wir einen leeren Typ Emptyund TypZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Anscheinend muss die Größe von Zmindestens so sein, 2weil die Typen von e1und gleich...
Konstante Ausdrücke in C ++ haben eine sehr nette Eigenschaft: Ihre Auswertung kann kein undefiniertes Verhalten haben ( 7.7.4.7 ): Ein Ausdruck e ist ein konstanter Kernausdruck, es sei denn, die Auswertung von e nach den Regeln der abstrakten Maschine ([intro.execution]) würde eine der...
Von cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Mit libc++scheint es , die unterstreicht Speicherung std::chrono::yearsheißt , shortdie signiert ist 16 Bit . std::chrono::years( 30797 ) // yields...
Ich habe mit C ++ 20 Consteval in GCC 10 herumgespielt und diesen Code geschrieben #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t>
In seinem kürzlich gehaltenen Vortrag "Type punning in modernem C ++" sagte Timur Doumler , dass std::bit_castdies nicht zum Bit-Casting floatin ein verwendet werden kann, unsigned char[4]da Arrays im C-Stil nicht von einer Funktion zurückgegeben werden können. Wir sollten entweder std::memcpyC ++...
In C ++ 20 std::swapwird eine constexprFunktion. Ich weiß, dass die Standardbibliothek beim Markieren von Dingen wirklich hinter der Sprache zurückgeblieben ist constexpr, aber bis 2017 <algorithm>war sie ziemlich genau wie eine Reihe anderer Dinge. Noch std::swapnicht. Ich erinnere mich...
Ich versuche, Ausdruckstypen von C ++ zu verstehen, und je mehr ich lese, desto verwirrter war ich, da ich den C ++ - Entwurf sehr schwer zu verdauen finde und daher andere Ressourcen bevorzuge, aber sie widersprechen sich entweder oder berücksichtigen nicht, dass die Wortlaut und Definition...
Betrachten Sie die folgenden drei structs: class blub { int i; char c; blub(const blub&) {} }; class blob { char s; blob(const blob&) {} }; struct bla { blub b0; blob b1; }; Auf typischen Plattformen mit int4 Bytes sind die Größen, Ausrichtungen und die Gesamtauffüllung 1 wie folgt: struct...
Ich suche nach einer Möglichkeit, leere (Captureless) Lambdas von anderen Lambdas in einer Vorlagenfunktion zu identifizieren. Ich verwende derzeit C ++ 17, bin aber auch neugierig auf C ++ 20-Antworten. Mein Code sieht folgendermaßen aus: template<typename T> auto func(T lambda) { // The...
Ist es auch möglich, diese Prädikate für Algorithmen zur Kompilierungszeit wiederzuverwenden, da Konzepte als Prädikate zur Kompilierungszeit definiert sind? Wäre es beispielsweise möglich zu überprüfen, ob alle Typen in einem Tupel einem Konzept entsprechen? Soweit ich gesehen habe, ist es nicht...
Das Konzeptequality_comparable_with<T, U> soll erklären, dass Objekte vom Typ Tund Umiteinander verglichen werden können, und wenn dies der Fall ist, hat dies die erwartete Bedeutung. Das ist gut. Dieses Konzept muss common_reference_t<T&, U&>jedoch auch existieren. Der...
Bis zum C ++ 20-Standard von C ++, als wir einen Operator außerhalb der Klasse definieren wollten, der einige private Mitglieder einer Vorlagenklasse verwendet, verwendeten wir ein ähnliches Konstrukt: template <typename T> class Foo; template <typename T> constexpr bool operator==(T...
Wir sind jetzt im Jahr 2020 und C ++ 20 kommt zusammen mit der lang erwarteten Funktion der C ++ - Module. Aber nachdem ich ein paar Vorträge über CppCon gesehen habe, finde ich, dass C ++ - Module an einem seltsamen Ort sind, insbesondere für Linux-Paketmanager (pacman, apt, emer, etc ...) Nach...
Der folgende Code lässt sich gut mit Clang-Trunk im C ++ 17-Modus kompilieren, bricht jedoch im C ++ 2a-Modus (bevorstehendes C ++ 20) ab: // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const...
Alle Konstruktoren von std :: span sind als constexpr deklariert, aber ich kann anscheinend keinen von ihnen dazu bringen, in einem constexpr-Kontext zu arbeiten. Das Kommentieren eines der folgenden Constexpr führt zu einem Kompilierungsfehler. #include <array> #include <span> int...