Als «c++11» getaggte Fragen

172
shared_ptr zu einem Array: sollte es verwendet werden?

Nur eine kleine Frage zu shared_ptr. Ist es eine gute Praxis, shared_ptrauf ein Array zu zeigen? Beispielsweise, shared_ptr<int> sp(new int[10]); Wenn nicht, warum dann nicht? Ein Grund, den ich bereits kenne, ist, dass man das nicht erhöhen / verringern kann shared_ptr. Daher kann es...

172
Was genau ist std :: atomic?

Ich verstehe, dass dies std::atomic<>ein atomares Objekt ist. Aber inwieweit atomar? Nach meinem Verständnis kann eine Operation atomar sein. Was genau bedeutet es, ein Objekt atomar zu machen? Zum Beispiel, wenn zwei Threads gleichzeitig den folgenden Code ausführen: a = a + 12; Ist dann...

169
Public Friend Swap Member Funktion

In der schönen Antwort auf die Copy-and-Swap-Sprache gibt es einen Code, für den ich ein bisschen Hilfe brauche: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray,...

168
Was sagt uns auto &&?

Wenn Sie Code wie lesen auto&& var = foo(); Wo foogibt eine Funktion nach Wert des Typs zurück T. Dann varist ein lWert vom Typ rWertreferenz auf T. Aber wofür bedeutet das var? Heißt das, wir dürfen die Ressourcen von stehlen var? Gibt es vernünftige Situationen, in denen Sie...

167
Wie aktiviere ich C ++ 11 in Qt Creator?

Der Titel ist ziemlich selbsterklärend. Ich habe Qt Creator 2.7.0 heruntergeladen und versuche, einen grundlegenden C ++ 11-Code zu kompilieren: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Ich erhalte die folgende Fehlermeldung: range based for loops are not allowed in...

166
Lambda-Erfassung als konstante Referenz?

Ist es möglich, durch konstante Referenz in einem Lambda-Ausdruck zu erfassen? Ich möchte, dass die unten markierte Zuweisung fehlschlägt, zum Beispiel: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string...

164
Können virtuelle Funktionen Standardparameter haben?

Wenn ich eine Basisklasse (oder Schnittstellenklasse) deklariere und einen Standardwert für einen oder mehrere ihrer Parameter spezifiziere, müssen die abgeleiteten Klassen dieselben Standardwerte angeben, und wenn nicht, welche Standardwerte werden in den abgeleiteten Klassen angezeigt? Nachtrag:...

163
Was sind die Vorteile von nullptr?

Dieser Code macht konzeptionell dasselbe für die drei Zeiger (sichere Zeigerinitialisierung): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Was sind also die Vorteile der Zuweisung von Zeigern nullptrgegenüber der Zuweisung von Werten NULLoder

161
std :: function vs template

Dank C ++ 11 haben wir die std::functionFamilie der Funktor-Wrapper erhalten. Leider höre ich immer wieder nur schlechte Dinge über diese Neuzugänge. Am beliebtesten ist, dass sie schrecklich langsam sind. Ich habe es getestet und sie saugen wirklich im Vergleich zu Vorlagen. #include...