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.


6
Warum std :: make_unique in C ++ 17 verwenden?
Soweit ich weiß, wurde C ++ 14 eingeführt std::make_unique, da dies aufgrund der nicht angegebenen Reihenfolge der Parameterauswertung unsicher war: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Erläuterung: Wenn die Auswertung zuerst den Speicher für den Rohzeiger zuweist, dann aufruft g()und vor der std::unique_ptrKonstruktion eine Ausnahme ausgelöst wird , geht der …
96 c++  c++17  unique-ptr 

4
experimenteller :: Dateisystem-Linker-Fehler
Ich versuche, die neuen c ++ 1z-Funktionen tatsächlich auf dem Kopf der Entwicklung in gcc 6.0 zu verwenden. Wenn ich dieses kleine Beispiel versuche: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } Ich …
94 c++  gcc  c++17 



1
Wie funktioniert die garantierte Kopierentscheidung?
Auf dem Oulu ISO C ++ Standards Meeting 2016 wurde vom Normungsausschuss ein Vorschlag mit dem Titel Garantierte Kopierentfernung durch vereinfachte Wertekategorien in C ++ 17 abgestimmt. Wie genau funktioniert die garantierte Kopierentscheidung? Deckt es einige Fälle ab, in denen die Kopierelision bereits zulässig war, oder sind Codeänderungen erforderlich, um …





2
std :: mit strukturierten Bindungen ignorieren?
Auftakt: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z führt eine Syntax für strukturierte Bindungen ein, die das Schreiben anstelle von ermöglicht int a, b, c; std::tie(a, b, c) = f(); etwas wie auto [a, b, c] = f(); Es std::tiedarf jedoch auch angegeben werden std::ignore, …

6
Variablen in einer if-Anweisung initialisieren
Ich habe gelesen, dass wir in C ++ 17 Variablen in solchen ifAnweisungen initialisieren können if (int length = 2; length == 2) //execute something Anstatt int length = 2; if (length == 2) //do something Obwohl es kürzer ist, beeinträchtigt es die Lesbarkeit des Codes (insbesondere für Leute, die …
80 c++  c++17 


3
Grundlegendes zu std :: hardware_destructive_interference_size und std :: hardware_constructive_interference_size
C ++ 17 hinzugefügt std::hardware_destructive_interference_sizeundstd::hardware_constructive_interference_size . Zuerst dachte ich, es sei nur eine tragbare Möglichkeit, die Größe einer L1-Cache-Zeile zu ermitteln, aber das ist eine übermäßige Vereinfachung. Fragen: Wie hängen diese Konstanten mit der L1-Cache-Zeilengröße zusammen? Gibt es ein gutes Beispiel, das ihre Anwendungsfälle demonstriert? Beide sind definiert static constexpr. …

3
So erhalten Sie effizient eine "string_view" für einen Teilstring von "std :: string"
Wenn ich http://en.cppreference.com/w/cpp/string/basic_string_view als Referenz verwende, sehe ich keine Möglichkeit, dies eleganter zu tun: std::string s = "hello world!"; std::string_view v = s; v = v.substr(6, 5); // "world" Schlimmer noch, der naive Ansatz ist eine Falle und hinterlässt veinen baumelnden Hinweis auf eine vorübergehende: std::string s = "hello world!"; …
76 c++  view  c++17  stdstring 

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.