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
Ist es möglich, zwei Zeichenfolgen vom Typ "const char *" zur Kompilierungszeit zu verketten?
Natürlich können wir zwei Zeichenfolgenliterale in einer constexprFunktion verketten, aber was ist mit der Verkettung eines Zeichenfolgenliterals mit einer Zeichenfolge, die von einer anderen constexprFunktion wie im folgenden Code zurückgegeben wird? template <class T> constexpr const char * get_arithmetic_size() { switch (sizeof(T)) { case 1: return "1"; case 2: return …
12 c++  c++17 

1
Ist das Captureless Lambda nach dem Standard garantiert leer?
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 aguments of the lambdas are unknown if …
12 c++  lambda  c++17  c++20 


1
Unqualified sort () - Warum wird es kompiliert, wenn es auf std :: vector und nicht auf std :: array verwendet wird, und welcher Compiler ist korrekt?
Beim Aufrufen std::sort()eines std::array: #include <vector> #include <array> #include <algorithm> int main() { std::vector<int> foo{4, 1, 2, 3}; sort(begin(foo), end(foo)); std::array<int, 4> foo2{4, 1, 2, 3}; sort(begin(foo2), end(foo2)); } Sowohl gcc als auch clang geben einen Fehler bei der Sortierung auf dem std::array- clang zurück Fehler: Verwendung des nicht deklarierten …
11 c++  c++17 




3
Kann ich std :: transform mit einer Richtlinie für parallele Ausführung verwenden?
Wenn ich mich nicht täuscht, kann ich std::transformausführen anstelle unter Verwendung des gleichen Bereichs als Ein- und Ausgang Iterator. Angenommen, ich habe ein std::vectorObjekt vec, dann würde ich schreiben std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) unter Verwendung einer geeigneten unären Operation unary_op. Unter Verwendung des C ++ 17-Standards möchte ich die Transformation parallel ausführen, indem …

1
Problem in GCC / C ++ 17 mit Vorlagenvorlagenklasse
Betrachten Sie die 2 folgenden Überlastungen template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Der erste funktioniert für reguläre Klassen, während der zweite für Vorlagen funktioniert, die nicht instanziiert sind. Zum Beispiel: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields …
10 c++  templates  gcc  clang  c++17 



2
Wann benötigen Sie in einem schreibgeschützten Szenario eine nullterminierte Zeichenfolge?
Ich habe mit der std::string_viewBibliothek herumgespielt und darüber nachgedacht, eine Codebasis zu ändern, an der ich gearbeitet habe, um std::string_viewso viel wie möglich zu verwenden. In vielen Threads, die ich zum Thema gelesen habe, wann und wo ich es verwenden soll, std::string_viewanstatt const std::string &. Ich habe viele Antworten gesehen, …

2
Wie kann man beim Verketten die Kopie entfernen?
Ich erstelle eine Klasse von Verkettungstypen, wie das kleine Beispiel unten. Es scheint, dass beim Verketten von Elementfunktionen der Kopierkonstruktor aufgerufen wird. Gibt es eine Möglichkeit, den Aufruf des Kopierkonstruktors loszuwerden? In meinem Spielzeugbeispiel unten ist es offensichtlich, dass ich mich nur mit Provisorien beschäftige und daher "sollte" (vielleicht nicht …
10 c++  c++14  c++17 


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.