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).


2
Ist #pragma einmal Teil des C ++ 11-Standards?
Traditionell war / ist die standardmäßige und tragbare Methode zur Vermeidung mehrerer Header-Einschlüsse in C ++ die Verwendung des #ifndef - #define - #endifPre-Compiler-Direktiven-Schemas, das auch als Makro-Guard-Schema bezeichnet wird (siehe Code-Snippet unten). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif In den meisten Implementierungen / Compilern (siehe Bild unten) gibt es …



3
Ist effektives C ++ noch effektiv?
Nach dem, was ich in diesem Beitrag gesehen habe, habe ich beschlossen, das Buch Effective C ++ zu lesen . Aber jetzt, da es aufgrund von C ++ 11 viele neue Funktionen gibt und einige der bewährten Methoden geändert wurden, bin ich mir nicht sicher, ob dies tatsächlich eine gute …


5
Wann sollte ich std :: thread :: remove verwenden?
Manchmal muss ich std::threadmeine Anwendung beschleunigen. Ich weiß auchjoin() wartet, bis ein Thread abgeschlossen ist. Das ist leicht zu verstehen, aber was ist der Unterschied zwischen Anrufen detach()und Nichtanrufen? Ich dachte das ohne detach() , die Methode des Threads mit einem Thread unabhängig arbeiten wird. Nicht ablösen: void Someclass::Somefunction() { …
138 c++  c++11  stdthread 

9
Gibt es tatsächlich einen Grund, warum && und || überladen sind? nicht kurzschließen?
Der Kurzschlussverhalten der Operatoren &&und ||ist ein wunderbares Werkzeug für Programmierer. Aber warum verlieren sie dieses Verhalten, wenn sie überlastet sind? Ich verstehe, dass Operatoren nur syntaktischer Zucker für Funktionen sind, aber die Operatoren für boolhaben dieses Verhalten. Warum sollte es auf diesen einzelnen Typ beschränkt werden? Gibt es technische …

10
Wie emuliert man das C-Array-Initialisierungsverhalten „int arr [] = {e1, e2, e3,…}“ mit std :: array?
(Hinweis: Bei dieser Frage geht es darum, die Anzahl der Elemente nicht angeben zu müssen und dennoch zu ermöglichen, dass verschachtelte Typen direkt initialisiert werden.) In dieser Frage werden die Verwendungszwecke für ein C-Array wie erläutert int arr[20];. In seiner Antwort zeigt @James Kanze eine der letzten Hochburgen von C-Arrays, …

15
Bequemes Deklarieren von Zeichenfolgen zur Kompilierungszeit in C ++
Das Erstellen und Bearbeiten von Zeichenfolgen während der Kompilierungszeit in C ++ bietet mehrere nützliche Anwendungen. Obwohl es möglich ist, Zeichenfolgen zur Kompilierungszeit in C ++ zu erstellen, ist der Prozess sehr umständlich, da die Zeichenfolge als variable Zeichenfolge deklariert werden muss, z using str = sequence<'H', 'e', 'l', 'l', …


5
Die neue Syntax "= default" in C ++ 11
Ich verstehe nicht, warum ich das jemals tun sollte: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Warum nicht einfach sagen: S() {} // instead of S() = default; Warum dafür eine neue Syntax einführen?
136 c++  c++11 

13
Wie erweitere ich ein Tupel in die Argumente der variablen Vorlagenfunktion?
Betrachten Sie den Fall einer Vorlagenfunktion mit variablen Vorlagenargumenten: template<typename Tret, typename... T> Tret func(const T&... t); Jetzt habe ich ein Tupel tvon Werten. Wie rufe ich func()mit den Tupelwerten als Argumente auf? Ich habe über das bind()Funktionsobjekt mit call()Funktion und auch über die apply()Funktion in verschiedenen inzwischen veralteten Dokumenten …
135 c++  c++11  arguments  tuples 

6
Generieren Sie Zufallszahlen mit der C ++ 11-Zufallsbibliothek
Wie der Titel schon sagt, versuche ich, mithilfe der neuen C ++ 11- <random>Bibliothek einen Weg zu finden, Zufallszahlen zu generieren . Ich habe es mit diesem Code versucht: std::default_random_engine generator; std::uniform_real_distribution<double> uniform_distance(1, 10.001); Das Problem mit dem Code, den ich habe, ist, dass jedes Mal, wenn ich ihn kompiliere …
135 c++  c++11  random  range 

4
Ist es möglich, den Parametertyp und den Rückgabetyp eines Lambda herauszufinden?
Ist es bei einem Lambda möglich, den Parametertyp und den Rückgabetyp herauszufinden? Wenn ja, wie? Grundsätzlich möchte ich, lambda_traitswelche auf folgende Arten verwendet werden kann: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Die Motivation dahinter ist, …

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.