Als «c++11» getaggte Fragen

384
Was ist std :: versprechen?

Ich bin ziemlich vertraut mit C ++ 11 ist std::thread, std::asyncund std::futureKomponenten (siehe zB diese Antwort ), die geradlinig sind. Ich kann jedoch nicht genau verstehen std::promise, was es ist, was es tut und in welchen Situationen es am besten verwendet wird. Das Standarddokument selbst...

369
C ++ - Vorlage typedef

ich habe ein klasse template<size_t N, size_t M> class Matrix { // .... }; Ich möchte ein machen typedef, das einen Vector(Spaltenvektor) erzeugt, der einem Matrixmit den Größen N und 1 entspricht. So etwas: typedef Matrix<N,1> Vector<N>; Was zu Kompilierungsfehlern führt....

367
Rückgabe von unique_ptr von Funktionen

unique_ptr<T>erlaubt keine Kopierkonstruktion, sondern unterstützt die Verschiebungssemantik. Dennoch kann ich a zurückgebenunique_ptr<T> von einer Funktion zurückgeben und den zurückgegebenen Wert einer Variablen zuweisen. #include <iostream> #include <memory> using...

367
Kompilieren von C ++ 11 mit g ++

Ich versuche, meinen C ++ - Compiler auf C ++ 11 zu aktualisieren. Ich habe ein bisschen gesucht und bin zu dem Schluss gekommen, dass ich die Flagge verwenden muss -std=c++0xoder -std=gnu++0x, aber ich weiß nicht viel über Flaggen. Kann mir jemand helfen? (Ich benutze Ubuntu 12.04.) Hier ist der...

356
Wie aktiviere ich C ++ 11 in CMake?

Wenn ich versuche, ein von CMake generiertes Makefile auszuführen, um mein Programm zu kompilieren, wird der Fehler angezeigt Für Schleifen basierende Bereiche werden im C ++ 98-Modus nicht unterstützt. Ich habe versucht add_definitions(-std=c++0x), meine zu ergänzen CMakeLists.txt, aber es hat...

337
Wann sollten Sie die constexpr-Funktion in C ++ 11 verwenden?

Es scheint mir, dass eine "Funktion, die immer 5 zurückgibt" die Bedeutung von "Aufrufen einer Funktion" bricht oder verwässert. Es muss einen Grund oder eine Notwendigkeit für diese Funktion geben, sonst wäre es nicht in C ++ 11. Warum ist es dort? // preprocessor. #define MEANING_OF_LIFE 42 //...

334
Wofür sind Inline-Namespaces?

C ++ 11 erlaubt inline namespaces, deren Mitglieder sich ebenfalls automatisch im Gehäuse befinden namespace. Ich kann mir keine nützliche Anwendung vorstellen - kann jemand bitte ein kurzes, prägnantes Beispiel für eine Situation geben, in der eine inline namespacebenötigt wird und in der es die...

321
C ++ 11 Reverse Range-basierte For-Loop

Gibt es einen Containeradapter, der die Richtung der Iteratoren umkehrt, damit ich mit einer bereichsbasierten for-Schleife in umgekehrter Reihenfolge über einen Container iterieren kann? Mit expliziten Iteratoren würde ich Folgendes konvertieren: for (auto i = c.begin(); i != c.end(); ++i) {...

294
Thread mit Mitgliedsfunktion starten

Ich versuche, eine std::threadFunktion mit einem Element zu erstellen, die keine Argumente akzeptiert und zurückgibt void. Ich kann keine Syntax finden, die funktioniert - der Compiler beschwert sich, egal was passiert. Was ist der richtige Weg, um zu implementieren spawn(), dass ein...

269
Warum hat C ++ keinen Garbage Collector?

Ich stelle diese Frage nicht wegen der Vorzüge der Speicherbereinigung. Mein Hauptgrund für diese Frage ist, dass ich weiß, dass Bjarne Stroustrup gesagt hat, dass C ++ irgendwann einen Garbage Collector haben wird. Warum wurde es nicht hinzugefügt? Es gibt bereits einige Garbage Collectors für C...