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.
tl; dr: Ich denke, mein static_vector hat ein undefiniertes Verhalten, aber ich kann es nicht finden. Dieses Problem tritt unter Microsoft Visual C ++ 17 auf. Ich habe diese einfache und unvollendete static_vector-Implementierung, dh einen Vektor mit einer festen Kapazität, der gestapelt werden kann. Dies ist ein C ++ 17-Programm, …
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 …
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 …
Die folgende Frage ist verwandt, die Antworten sind jedoch alt, und der Kommentar von Benutzer Marc Glisse legt nahe, dass es seit C ++ 17 neue Ansätze für dieses Problem gibt, die möglicherweise nicht angemessen diskutiert werden. Ich versuche, den ausgerichteten Speicher für SIMD ordnungsgemäß zu verwenden, während ich weiterhin …
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 …
Mein Szenario ist das folgende (es hat in clang funktioniert, aber nicht in gcc) liba.hpp: inline int MY_GLOBAL = 0; libother.cpp: (dll) #include "myliba.hpp" void myFunc() { // MYGLOBAL = 28; } someexe.cpp: RunAppThatUsesBothLibAandLibOther(); Das Problem ist, dass die Inline-Variable an Stellen, an denen ich 28 erwartet hatte, 0 anzeigt, …
Folgendes wird nicht kompiliert: #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Probieren Sie es auf Godbolt Compilerfehler ist: error: assignment of read-only reference 's' In meinem aktuellen Fall besteht …
Ich bin nicht sehr daran gewöhnt weak_ptrund stehe vor einer ziemlich verwirrenden Situation. Ich verwende Intel XE 2019 Composer Update 5 ( Paket 2019.5.281 ) in Kombination mit Visual Studio 2019 ver. 16.2.5 . Ich kompiliere in 64-Bit. Ich benutze das Standard C ++ 17 . Hier ist der Code …
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 …
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 …
Betrachten Sie das folgende Programm. #include <iostream> template <typename T> void f( void ( *fn )( T ) ) { fn( 42 ); } void g( int x ) { std::cout << "g( " << x << " );\n"; } int main() { f( g ); } Das Programm wird …
Ich versuche, auf den Inhalt einer Variante zuzugreifen. Ich weiß nicht, was da drin ist, aber zum Glück tut es die Variante. Also dachte ich, ich frage die Variante einfach, auf welchem Index sie sich befindet, und verwende diesen Index dann für std::getihren Inhalt. Dies kompiliert aber nicht: #include <variant> …
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, …
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 …
Ich denke, das ist eine ziemlich einfache Frage. Ich würde es gerne verwenden std::get_time, aber es erfordert eine Art Stream, mit dem ich verwendet werden kann. Ich übergebe die Daten in a string_viewund möchte vermeiden, sie nur zu kopieren, um das Datum zu analysieren.
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.