Als «c++17» getaggte Fragen

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.

2
Gültige Syntax zum Aufrufen des Pseudo-Destruktors für eine schwebende Konstante
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 …

2
Was ist mit C ++ std :: atomic auf Programmiererebene garantiert?
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 …


1
Vom Benutzer bereitgestellte std :: allocator-Spezialisierung
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 …
8 c++  c++17  allocator 

1
Wie man die vorgeschlagene Auflösung von # 1664 versteht
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 …


1
Wie wähle ich zwischen std :: redu und std :: accumulate?
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 …


3
Verwenden Sie die aktuelle Vorlage als Vorlagenparameter für einen der Vorlagenparameter
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 …


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.