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 …
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 …
[basic.scope.pdecl] / 1 des C ++ 20-Standardentwurfs enthielt das folgende (nicht normative) Beispiel in einer Notiz (Teilzitat vor dem Zusammenführen der Pull-Anforderung 3580 , siehe Antwort auf diese Frage): unsigned char x = x; [...] x wird mit einem eigenen (unbestimmten) Wert initialisiert. Hat dies tatsächlich ein genau definiertes Verhalten …
Angenommen, ich habe eine shared_ptrmit einem benutzerdefinierten Allokator und einem benutzerdefinierten Löscher. Ich kann im Standard nichts finden, das darüber spricht, wo der Deleter gespeichert werden soll: Es heißt nicht, dass der benutzerdefinierte Allokator für den Speicher des Deleters verwendet wird, und es heißt nicht, dass dies nicht der Fall …
In C ++ 20 ist das Konzept von POD veraltet, angeblich weil es ein bedeutungsloses zusammengesetztes Merkmal von Trivialität und Standardlayout ist. Die Definition von POD im C ++ 20-Entwurf ist jedoch nicht genau "sowohl trivial als auch Standardlayout". es ist eigentlich: Eine POD-Klasse ist eine Klasse, die sowohl eine …
Erwägen int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } Dürfen Sie zwischen der Initialisierung und dem Löschen der Kopie den Zeiger auf lesen a + 1? Erlaubt die Sprache dem Compiler außerdem die Einstellung aauf nullptr?
#include <optional> bool f() { std::optional<int> opt; return opt; } Kompiliert nicht: 'return': cannot convert from 'std::optional<int>' to 'bool' Beratungsreferenz Ich hätte gedacht, eine Erklärung zu finden, aber ich habe sie gelesen, da es in Ordnung sein sollte. Implizite Konvertierungen werden immer dann durchgeführt, wenn ein Ausdruck eines Typs T1 …
Cppreference hat diesen Beispielcode für std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Es heißt aber auch: std::transformgarantiert nicht die ordnungsgemäße Anwendung von unary_opoder binary_op. Verwenden Sie zum Anwenden einer Funktion auf eine Sequenz in der angegebenen Reihenfolge oder zum Anwenden einer Funktion, …
Ist der Wert des thisZeigers während der Lebensdauer eines bestimmten Objekts garantiert konstant? Ich kann mir keinen Fall vorstellen, in dem sich das ändern würde, aber ich weiß nicht, ob mir etwas fehlt.
JLS : Der Operator mit der niedrigsten Priorität ist der Pfeil eines Lambda-Ausdrucks (->) , gefolgt von den Zuweisungsoperatoren. In welche Richtung verfolgt (Priorität erhöhen, Priorität verringern)? - "gefolgt" bedeutet, dass die Zuweisung eine höhere oder niedrigere Priorität hat (in Bezug auf den Pfeiloperator)? Ich denke, in zunehmendem Maße, weil …
Betrachten Sie diesen Code: void foo() { goto bar; int x = 0; bar: ; } GCC und Clang lehnen dies ab , da der Sprung zur bar:Umgehung der Variableninitialisierung erfolgt. MSVC beschwert sich überhaupt nicht (außer mitx After verwendet bar:wird, wird eine Warnung ). Wir können etwas Ähnliches tun …
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 ausreichender Größe, um die maximal mögliche Dateigröße für das Betriebssystem darzustellen. 287) …
Gegeben die folgende Klassenvorlage: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; Wir definieren Innerseparat für jede Spezialisierung von Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; und definieren Sie dann die Elementfunktion feinmal für alle Spezialisierungen von Outer: auto Outer<T>::f(Inner) -> void { } …
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.