Als «c++11» getaggte Fragen

72
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,...

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

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

70
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,...

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