C ++ 17 ist der Name des 2017 genehmigten C ++ - Standards. Er baut auf dem vorherigen C ++ 14-Standard auf, verbessert die Kernsprache und die Standardbibliothek und fügt einige neue Sprachfunktionen hinzu.
Betrachten Sie das folgende Demonstrationsprogramm. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Dieses Programm wird zusammengestellt von Microsoft Visual Studio Community 2019. Aber clangund gccgeben Sie einen Fehler wie diesen aus prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ Wenn der …
Ich habe mehrere Artikel, Vorträge und Fragen zum Stackoverflow angehört und gelesen std::atomicund möchte sichergehen, dass ich sie gut verstanden habe. Weil ich immer noch ein bisschen verwirrt bin mit der Sichtbarkeit von Cache-Zeilen-Schreibvorgängen aufgrund möglicher Verzögerungen bei MESI-Cache-Kohärenzprotokollen (oder abgeleiteten Protokollen), Speicherpuffern, ungültigen Warteschlangen usw. Ich habe gelesen, dass …
Gibt die C ++ - Spezifikation die Reihenfolge operator newund den Konstruktor von Ain an new C(A())? Das g ++ ließ die Reihenfolge sein A()-> new-> C(), aber clang ++ ließ es sein new->A() -> C(). Wird der Unterschied durch nicht angegebenes Verhalten verursacht? g ++: 7.4.0 clang ++: 10.0.0 …
Klassenvorlagen im ::stdNamespace können im Allgemeinen durch Programme für benutzerdefinierte Typen spezialisiert werden. Ich habe keine Ausnahme von dieser Regel für gefunden std::allocator. Darf ich mich also auf std::allocatormeine eigenen Typen spezialisieren? Und wenn ich darf, muss ich dann alle Mitglieder der std::allocatorprimären Vorlage bereitstellen , da viele von ihnen …
Nachdem ich mir die vorgeschlagene Auflösung von # 1664 ( vorgeschlagene Auflösung 1664 ) angesehen habe, bin ich verwirrt über die Regeln eines Standardarguments einer Funktionsvorlage. Zitieren Sie den Inhalt hier: Gemäß 8.1.5 [expr.prim.lambda] Absatz 3 Der Schließungstyp wird im kleinsten Blockbereich, Klassenbereich oder Namespace-Bereich deklariert, der den entsprechenden Lambda-Ausdruck …
Betrachten Sie das folgende Beispiel ( Snippet (0) ): struct X { constexpr int get() const { return 0; } }; void foo(const X& x) { constexpr int i = x.get(); } int main() { foo(X{}); } Das obige Beispiel wird mit allen Versionen von g++vor g++ 10.xund nie unter …
std::accumulateund std::reducemacht fast das gleiche. Zusammenfassung von std::reducesagt alles: similar to `std::accumulate`, except out of order In vielen Fällen sollten diese Funktionen das gleiche Endergebnis liefern und die gleiche Gesamtfunktionalität aufweisen. Es ist offensichtlich, dass Sie mit einer sehr hohen Lastberechnung usw. experimentieren können, std::reduceum eine Parrelisierung durchzuführen. Dh. Was …
Ist es wichtig, in welcher Reihenfolge Folgendes angewendet wird? std::remove_reference_t<std::remove_cv_t<T>> oder std::remove_cv_t<std::remove_reference_t<T>> In welchem Szenario spielt die Bestellung eine Rolle?
Ich versuche, eine generische Diagrammstruktur zu erstellen, aber ich stoße auf diese kreisförmige Abhängigkeit zwischen Scheitelpunkten und Kanten. Ich definiere meine Vertex- und Edge-Klassen folgendermaßen: template<typename EdgeType> struct Vertex { std::vector<EdgeType> successors; }; template<typename EdgeCostType, typename VertexWrapper> struct Edge { EdgeCostType cost; VertexWrapper source; VertexWrapper dest; }; Ich würde es …
Der Versuch, so etwas wie ... template <class T> struct Wrapper { template <class U> void set(const U& u) { myT = u; } template <class F> void set(F f) { myT = f(); } T myT; }; Ich weiß, dass ich hier SFINAE verwenden muss, aber wie unterscheide ich …
Ich habe zwei std::map<>Objekte aund bmöchte einige Elemente (Knoten) basierend auf einem Prädikat von einer Karte zur anderen verschieben ( extract+ insert) p. for (auto i = a.begin(); i != a.end(); ++i) if (p(*i)) b.insert(a.extract(i)) Dieser Code ist in clang fehlerhaft. Ich gehe davon aus, dass das Problem das Inkrement …
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.