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

10
Warum sollte das Verhalten von std :: memcpy für Objekte, die nicht TriviallyCopyable sind, undefiniert sein?
Von http://en.cppreference.com/w/cpp/string/byte/memcpy : Wenn die Objekte nicht TriviallyCopyable sind (z. B. Skalare, Arrays, C-kompatible Strukturen), ist das Verhalten undefiniert. Bei meiner Arbeit haben wir std::memcpylange Zeit Objekte, die nicht TriviallyCopyable sind, bitweise ausgetauscht, indem wir : void swapMemory(Entity* ePtr1, Entity* ePtr2) { static const int size = sizeof(Entity); char swapBuffer[size]; …

3
Warum wird das flüchtige Qualifikationsmerkmal in std :: atomic verwendet?
Nach dem, was ich von Herb Sutter und anderen gelesen habe, würde man denken, dass die volatilegleichzeitige Programmierung völlig orthogonale Konzepte waren, zumindest was C / C ++ betrifft. In der GCC- Implementierung haben jedoch alle std::atomicMitgliedsfunktionen das volatileQualifikationsmerkmal. Gleiches gilt für Anthony Williams ' Implementierung von std::atomic. Also, was …
72 c++  c++11  atomic  volatile 

4
Ist string :: c_str () in C ++ 11 nicht mehr null terminiert?
In C ++ 11 basic_string::c_strist genau das gleiche definiert wie basic_string::data, was wiederum genau das gleiche ist wie *(begin() + n)und *(&*begin() + n)(wann 0 <= n < size()). Ich kann nichts finden, bei dem die Zeichenfolge immer ein Nullzeichen am Ende haben muss. Bedeutet dies, dass c_str()nicht mehr garantiert …
72 c++  string  c++11 


10
Verwenden von std :: vector als Ansicht des Rohspeichers
Ich verwende eine externe Bibliothek, die mir irgendwann einen unformatierten Zeiger auf ein Array von Ganzzahlen und eine Größe gibt. Jetzt möchte ich auf std::vectordiese Werte zugreifen und sie ändern, anstatt mit rohen Zeigern darauf zuzugreifen. Hier ist ein künstliches Beispiel, das den Punkt erklärt: size_t size = 0; int …
71 c++  c++11  vector  stdvector 


3
Was ist der Leistungsnachteil von C ++ 11 thread_local-Variablen in GCC 4.8?
Aus dem GCC 4.8-Änderungsprotokollentwurf : G ++ implementiert jetzt das Schlüsselwort C ++ 11 thread_local ; Dies unterscheidet sich vom GNU- __threadSchlüsselwort hauptsächlich dadurch, dass es eine dynamische Initialisierungs- und Zerstörungssemantik ermöglicht. Leider erfordert diese Unterstützung eine Laufzeitstrafe für Verweise auf nicht funktionslokale thread_localVariablen, auch wenn sie keine dynamische Initialisierung …


3
Wo ist die Sperre für ein std :: atomic?
Wenn eine Datenstruktur mehrere Elemente enthält, kann die atomare Version nicht (immer) sperrfrei sein. Mir wurde gesagt, dass dies für größere Typen gilt, da die CPU die Daten nicht atomar ändern kann, ohne eine Art Sperre zu verwenden. zum Beispiel: #include <iostream> #include <atomic> struct foo { double a; double …
71 c++  c++11  x86  atomic  stdatomic 

2
Warum wird "std :: initializer_list" oft als Wert übergeben?
In fast jedem Beitrag, den ich auf SO sehe und an dem a beteiligt ist std::initializer_list, neigen die Leute dazu, einen std::initializer_listWert zu übergeben. Nach diesem Artikel: http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ man sollte den Wert übergeben, wenn man eine Kopie des übergebenen Objekts erstellen möchte. Aber das Kopieren von a std::initializer_listist keine gute …
71 c++  c++11 

7
Wo kann ich mehr über C ++ 0x erfahren? [geschlossen]
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …


11
Refactoring mit C ++ 11
Angesichts des neuen Toolset, das von vielen Programmierern in C ++ bereitgestellt wird, zielen viele auf Programmvereinfachung, Ausdruckskraft und Effizienz ab, überfliegen ihren alten Code und nehmen Optimierungen (einige sinnlos, andere erfolgreich) vor, um ihre Ziele zu erreichen. Was sind die besten Praktiken, wenn Sie versuchen, nicht zu viel Zeit …
70 c++  c++11  refactoring 

4
Was ist die Lebensdauer eines C ++ - Lambda-Ausdrucks?
(Ich habe bereits gelesen, wie lange implizite Funktoren aus Lambda in C ++ noch leben, und diese Frage wird nicht beantwortet.) Ich verstehe, dass die C ++ - Lambda-Syntax nur Zucker ist, um eine Instanz einer anonymen Klasse mit einem Aufrufoperator und einem bestimmten Status zu erstellen, und ich verstehe …
70 c++  lambda  c++11 

4
Macht das Verschieben eines Vektors Iteratoren ungültig?
Wenn ich einen Iterator in einen Vektor habe a, dann bewege ich einen Vektor baus oder bewege ihn zu. Zeigt adieser Iterator immer noch auf dasselbe Element (jetzt im Vektor b)? Folgendes meine ich im Code: #include <vector> #include <iostream> int main(int argc, char *argv[]) { std::vector<int>::iterator a_iter; std::vector<int> b; …
70 c++  iterator  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.