Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.

2
Warum hat `std :: basic_ios` einen öffentlichen Konstruktor?
std::basic_ioshat einen öffentlichen Konstruktor : explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb); IMO, der einzige Grund für eine Klasse, einen öffentlichen Konstruktor zu haben, ist die Verwendung einer eigenständigen Instanz dieser Klasse in einem Programm. Wenn eine Klasse nur existiert, um andere Klassen davon abzuleiten (wie es der Fall zu sein scheint basic_ios), …


2
C ++ - Thread mit Funktionsobjekt. Wie werden mehrere Destruktoren aufgerufen, nicht jedoch die Konstruktoren?
Das Code-Snippet finden Sie unten: class tFunc{ int x; public: tFunc(){ cout<<"Constructed : "<<this<<endl; x = 1; } ~tFunc(){ cout<<"Destroyed : "<<this<<endl; } void operator()(){ x += 10; cout<<"Thread running at : "<<x<<endl; } int getX(){ return x; } }; int main() { tFunc t; thread t1(t); if(t1.joinable()) { cout<<"Thread …




2
Warum ist std :: swap nicht vor C ++ 20 als constexpr markiert?
In C ++ 20 std::swapwird eine constexprFunktion. Ich weiß, dass die Standardbibliothek beim Markieren von Dingen wirklich hinter der Sprache zurückgeblieben ist constexpr, aber bis 2017 <algorithm>war sie ziemlich genau wie eine Reihe anderer Dinge. Noch std::swapnicht. Ich erinnere mich vage an einen seltsamen Sprachfehler, der diese Markierung verhindert, aber …


2
Ist std :: chrono :: Jahre Speicher wirklich mindestens 17 Bit?
Von cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Mit libc++scheint es , die unterstreicht Speicherung std::chrono::yearsheißt , shortdie signiert ist 16 Bit . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB Gibt es einen Tippfehler bei …
14 c++  chrono  c++20  libc++ 

3
Sortieren eines Vektors in absteigender Reihenfolge innerhalb von zwei Bereichen
Angenommen, ich habe einen Vektor von ganzen Zahlen: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Dann sortiere ich es in absteigender Reihenfolge: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Dies ergibt Folgendes: 14 13 12 11 10 9 …

1
Clang kompiliert keinen Code, aber gcc und msvc haben ihn kompiliert
Ich verstehe nicht, was das Problem ist: entweder in meinem Code oder im Compiler (weniger möglich). Es gibt einen Code wie diesen: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …

2
Wie funktioniert ein Vektor als Schlüssel intern in C ++?
Diese SO-Antwort besagt, dass die STL-Karte mit einem Vektor für den Schlüssel Vektor als Schlüssel verwendet werden kann. Wenn wir also einen Vektor als Schlüssel verwenden. Wie funktioniert das tatsächlich, da der Schlüssel eindeutig sein mapmuss? Wenn wir also einen anderen Vektor mit denselben Elementen einfügen, wird die Überprüfung auf …
14 c++  arrays  dictionary  vector  stl 


1
Kann ich std :: vector mit perfekter Weiterleitung der Elemente listeninitialisieren?
Ich bemerkte , dass aggregierte Liste initialisiert von std :: vector führt Initialisierung kopieren , wenn Bewegung mehr anwendbar ist. Gleichzeitig machen mehrere emplace_backs, was ich will. Ich konnte mir nur diese unvollständige Lösung für das Schreiben einer Vorlagenfunktion einfallen lassen init_emplace_vector. Es ist jedoch nur für nicht explizite Einzelwertkonstruktoren …


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.