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



6
Verschieben Sie den Zuweisungsoperator und `if (this! = & Rhs)`
Im Zuweisungsoperator einer Klasse müssen Sie normalerweise überprüfen, ob das zugewiesene Objekt das aufrufende Objekt ist, damit Sie nichts vermasseln: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } Benötigen Sie dasselbe für den Verschiebungszuweisungsoperator? Gibt es jemals eine Situation, in …

3
Ist 1.0 eine gültige Ausgabe von std :: generate_canonical?
Ich habe immer gedacht, Zufallszahlen würden zwischen null und eins liegen, ohne1 , dh es handelt sich um Zahlen aus dem halboffenen Intervall [0,1]. Die Dokumentation auf cppreference.com von std::generate_canonicalbestätigt dies. Wenn ich jedoch das folgende Programm ausführe: #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq …
124 c++  c++11  random 

2
Erfassen C ++ 11-Lambdas Variablen, die sie nicht verwenden?
Wenn ich anzeige [=], dass alle lokalen Variablen nach Wert in einem Lambda erfasst werden sollen, werden dann alle lokalen Variablen in der Funktion kopiert oder nur alle lokalen Variablen , die vom Lambda verwendet werden ? Also zum Beispiel, wenn ich habe: vector<int> my_huge_vector(100000); int my_measly_int; some_function([=](int i){ return …
123 c++  lambda  c++11 

3
Die Verwendung dieses Zeigers führt zu einer merkwürdigen Deoptimierung im Hot-Loop
Ich bin kürzlich auf eine seltsame Deoptimierung gestoßen (oder habe eher eine Optimierungsmöglichkeit verpasst). Betrachten Sie diese Funktion zum effizienten Entpacken von Arrays aus 3-Bit-Ganzzahlen in 8-Bit-Ganzzahlen. In jeder Schleifeniteration werden 16 Zoll entpackt: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] …


6
Fehler: Verwendung der gelöschten Funktion
Ich habe an einem C ++ - Code gearbeitet, den ein Freund geschrieben hat, und erhalte den folgenden Fehler, den ich beim Kompilieren mit gcc4.6 noch nie gesehen habe: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const …

2
Wie funktioniert std :: tie?
Ich habe verwendet, std::tieohne viel darüber nachzudenken. Es funktioniert, also habe ich das einfach akzeptiert: auto test() { int a, b; std::tie(a, b) = std::make_tuple(2, 3); // a is now 2, b is now 3 return a + b; // 5 } Aber wie funktioniert diese schwarze Magie ? Wie …
120 c++  c++11  tuples 


1
Macht async (launch :: async) in C ++ 11 Thread-Pools überflüssig, um teure Thread-Erstellung zu vermeiden?
Es hängt lose mit dieser Frage zusammen: Sind std :: thread in C ++ 11 zusammengefasst? . Obwohl die Frage unterschiedlich ist, ist die Absicht dieselbe: Frage 1: Ist es immer noch sinnvoll, eigene Thread-Pools (oder Bibliotheken von Drittanbietern) zu verwenden, um eine teure Thread-Erstellung zu vermeiden? Die Schlussfolgerung in …

4
Wie aktiviere ich C ++ 11 in gcc?
Ich verwende gcc 4.8.1 von http://hpc.sourceforge.net unter Mac OSX Mountain Lion. Ich versuche ein C ++ - Programm zu kompilieren, das die to_stringFunktion in verwendet <string>. Ich muss die Flagge -std=c++11jedes Mal benutzen : g++ -std=c++11 -o testcode1 code1.cpp Gibt es eine Möglichkeit, dieses Flag standardmäßig einzuschließen?
117 c++11  g++ 


2
Initialisieren Sie einen Vektor mit Nullen C ++ / C ++ 11
Ich weiß, dass sie in C ++ 11 die Funktion hinzugefügt haben, um eine Variable als solche auf Null zu initialisieren double number = {}; // number = 0 int data{}; // data = 0 Gibt es eine ähnliche Möglichkeit, std::vectoreine feste Länge mit allen Nullen zu initialisieren ?
117 c++  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.