Als «c++11» getaggte Fragen

Verwenden Sie dieses Tag für Code, der als C ++ 11 kompiliert werden muss (ohne die in C ++ 14 oder höher eingeführten Funktionen zu verwenden).

8
Optimieren Sie eine "Weile (1)"; in C ++ 0x
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 …


6
Was passiert mit einem getrennten Thread, wenn main () beendet wird?
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. …

6
Warum sollte ich std :: move std :: shared_ptr verschieben?
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) { …


4
Verwenden der Mitgliedsvariablen in der Lambda-Erfassungsliste innerhalb einer Mitgliedsfunktion
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; }); } …

1
Welche Logik steckt hinter dem Schlüsselwort "using" in C ++?
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 …
145 c++  c++11 

7
C ++ Auto-Schlüsselwort. Warum ist es Magie?
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 …
144 c++  types  c++11  auto 

5
Wofür steht iota von std :: iota?
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.

12
Warum sollte jemand set anstelle von unordered_set verwenden?
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 …


14
Rekursive Lambda-Funktionen in C ++ 11
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 { …
143 c++  c++11  lambda 

4
Ist Pass-by-Value in C ++ 11 ein vernünftiger Standard?
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 …
142 c++  coding-style  c++11 



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.