Aktualisiert, siehe unten! Ich habe gehört und gelesen, dass C ++ 0x einem Compiler erlaubt, "Hallo" für das folgende Snippet zu drucken #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Es hat anscheinend etwas mit Threads und Optimierungsmöglichkeiten zu tun. Es scheint mir, dass dies …
Motivation: Grund, warum ich darüber nachdenke, ist, dass mein genialer Projektmanager denkt, dass Boost eine weitere Abhängigkeit ist und dass es schrecklich ist, weil "Sie davon abhängen" (ich habe versucht, die Qualität von Boost zu erklären, und dann nach einiger Zeit aufgegeben :( ) Ein kleinerer Grund, warum ich das …
Angenommen, ich starte a std::threadund dann detach()es, sodass der Thread weiterhin ausgeführt wird, obwohl der Thread, der std::threadihn einmal dargestellt hat, außerhalb des Gültigkeitsbereichs liegt. Angenommen, das Programm verfügt nicht über ein zuverlässiges Protokoll zum Verbinden des getrennten Threads 1 , sodass der getrennte Thread beim main()Beenden weiterhin ausgeführt wird. …
Ich habe den Clang-Quellcode durchgesehen und diesen Ausschnitt gefunden: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Warum sollte ich will std::moveein std::shared_ptr? Gibt es einen Grund, das Eigentum an einer gemeinsam genutzten Ressource zu übertragen? Warum sollte ich das nicht einfach stattdessen tun? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …
Betrachten Sie diesen C ++ 11-Code: enum class Color : char { red = 0x1, yellow = 0x2 } // ... char *data = ReadFile(); Color color = static_cast<Color>(data[0]); Angenommen, Daten [0] sind tatsächlich 100. Auf welche Farbe wird gemäß dem Standard eingestellt? Insbesondere, wenn ich es später tue switch …
Der folgende Code wird mit gcc 4.5.1 kompiliert, jedoch nicht mit VS2010 SP1: #include <iostream> #include <vector> #include <map> #include <utility> #include <set> #include <algorithm> using namespace std; class puzzle { vector<vector<int>> grid; map<int,set<int>> groups; public: int member_function(); }; int puzzle::member_function() { int i; for_each(groups.cbegin(),groups.cend(),[grid,&i](pair<int,set<int>> group){ i++; cout<<i<<endl; }); } …
Welche Logik steckt hinter dem Schlüsselwort "using" in C ++? Es wird in verschiedenen Situationen verwendet und ich versuche herauszufinden, ob all diese etwas gemeinsam haben, und es gibt einen Grund, warum das Schlüsselwort "using" als solches verwendet wird. using namespace std; // to import namespace in the current namespace …
Von all dem Material, das ich zum Erlernen von C ++ verwendet habe, autowar es immer ein seltsamer Spezifizierer für die Speicherdauer, der keinen Zweck erfüllt hat. Aber erst kürzlich bin ich auf Code gestoßen, der ihn als Typnamen an und für sich verwendet hat. Aus Neugier habe ich es …
Ich gehe davon aus, dass das "i" inkrementiert und das "a" zugewiesen ist, aber ich konnte die Antwort nicht herausfinden oder finden. Außerdem sieht es dem Nicht-Standard sehr ähnlich, itoawas ich für verwirrend halte.
C ++ 0x wird eingeführt, unordered_setdas an boostund an vielen anderen Orten verfügbar ist . Was ich verstehe ist, dass unordered_setes sich um eine Hash-Tabelle mit O(1)Nachschlagekomplexität handelt. Auf der anderen Seite setist nichts als ein Baum mit log(n)Nachschlagekomplexität. Warum um alles in der Welt sollte jemand setanstelle von verwenden …
Es scheint, dass dies autoeine ziemlich wichtige Funktion war, die in C ++ 11 hinzugefügt wurde und die vielen neueren Sprachen zu folgen scheint. Wie bei einer Sprache wie Python habe ich keine explizite Variablendeklaration gesehen (ich bin nicht sicher, ob es mit Python-Standards möglich ist). Gibt es einen Nachteil …
Ich bin neu in C ++ 11. Ich schreibe die folgende rekursive Lambda-Funktion, aber sie wird nicht kompiliert. sum.cpp #include <iostream> #include <functional> auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int { …
In herkömmlichem C ++ ist die Übergabe von Werten an Funktionen und Methoden für große Objekte langsam und wird im Allgemeinen verpönt. Stattdessen neigen C ++ - Programmierer dazu, Referenzen weiterzugeben, was schneller ist, aber alle möglichen komplizierten Fragen zum Besitz und insbesondere zur Speicherverwaltung aufwirft (falls das Objekt Heap-zugewiesen …
Was ist der Zweck des finalSchlüsselworts in C ++ 11 für Funktionen? Ich verstehe, dass es das Überschreiben von Funktionen durch abgeleitete Klassen verhindert, aber wenn dies der Fall ist, reicht es dann nicht aus, Ihre finalFunktionen als nicht virtuell zu deklarieren ? Fehlt mir hier noch etwas?
Ich hatte die Auffassung, dass der Typ eines Lambda ein Funktionszeiger ist. Als ich den folgenden Test durchführte, stellte ich fest, dass er falsch war ( Demo ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto …
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.