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
Wann sollte ich noexcept wirklich verwenden?
Das noexceptSchlüsselwort kann angemessen auf viele Funktionssignaturen angewendet werden, aber ich bin mir nicht sicher, wann ich es in der Praxis verwenden soll. Basierend auf dem, was ich bisher gelesen habe, noexceptscheint die Hinzufügung von Last-Minute einige wichtige Probleme zu lösen, die beim Werfen von Bewegungskonstruktoren auftreten. Ich kann jedoch …

6
Vorteile der Verwendung von Forward
std::forwardWird bei perfekter Weiterleitung verwendet, um die benannten rWertreferenzen t1und t2unbenannte rWertreferenzen zu konvertieren . Was ist der Zweck davon? Wie würde sich das auf die aufgerufene Funktion auswirken, innerwenn wir t1& t2als lWerte belassen? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11 rWerte und Verschieben der Semantikverwirrung (return-Anweisung)
Ich versuche, rWert-Referenzen zu verstehen und die Semantik von C ++ 11 zu verschieben. Was ist der Unterschied zwischen diesen Beispielen und welches von ihnen wird keine Vektorkopie machen? Erstes Beispiel std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Zweites Beispiel std::vector<int>&& return_vector(void) { std::vector<int> …


6
Wie übergebe ich ein unique_ptr-Argument an einen Konstruktor oder eine Funktion?
Ich bin neu in der Verschiebung der Semantik in C ++ 11 und weiß nicht genau, wie ich mit unique_ptrParametern in Konstruktoren oder Funktionen umgehen soll . Betrachten Sie diese Klasse, die sich selbst referenziert: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void …


10
Pretty-Print-C ++ - STL-Container
Bitte beachten Sie die Updates am Ende dieses Beitrags. Update: Ich habe ein öffentliches Projekt auf GitHub für diese Bibliothek erstellt! Ich hätte gerne eine einzige Vorlage, die ein für alle Mal dafür sorgt, dass alle STL-Container über hübsch gedruckt werden operator<<. Im Pseudocode suche ich so etwas: template<container C, …

9
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 enthält nicht viele Informationen, die …

1
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. Das Folgende schafft etwas Ähnliches, aber nicht genau das, …
369 c++  templates  c++11  typedef 

5
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 namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p ); // 2 } int …
367 c++  c++11  unique-ptr 

5
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 …
367 c++  c++11  g++  flags 

14
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 nicht geholfen. Ich habe es auch versucht: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() …
356 c++11  cmake 

6
std :: unique_lock <std :: mutex> oder std :: lock_guard <std :: mutex>?
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Чем std :: unique_lock отличается от std :: lock_guard? Ich habe zwei Anwendungsfälle. A. Ich möchte den Zugriff von zwei Threads auf eine Warteschlange synchronisieren. B. Ich möchte den Zugriff von zwei Threads auf eine Warteschlange synchronisieren und eine Bedingungsvariable …

14
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 // constants: const …
337 c++  c++11  constexpr 


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.