Articles of c ++ 11

Was macht einen gültigen Zustand für ein “bewegt von” -Objekt in C ++ 11 aus?

Ich habe versucht, meinen Kopf darum zu drehen, wie die Bewegungssemantik in C ++ 11 funktionieren soll, und ich habe große Schwierigkeiten damit zu verstehen, welche Bedingungen ein verschobenes Objekt erfüllen muss. Ein Blick auf die Antwort hier triggers meine Frage nicht wirklich, weil ich nicht sehen kann, wie man sie sinnvoll auf Pimpl-Objekte anwendet, […]

std :: thread pass by reference ruft Kopierkonstruktor auf

Nun, ich habe ein Problem mit der Weitergabe von Daten in einen Thread mit std :: thread. Ich dachte, ich verstehe die allgemeine Semantik von Kopierern usw., aber es scheint, dass ich das Problem nicht ganz verstehe. Ich habe eine einfache class namens Log, die ihren Kopierkonstruktor so versteckt hat: class Log { public: Log(const […]

Soll der nachfolgende Rückgabetypsyntaxstil der Standard für neue C ++ 11-Programme werden?

C ++ 11 unterstützt eine neue functionssyntax: auto func_name(int x, int y) -> int; Derzeit würde diese function wie folgt deklariert werden: int func_name(int x, int y); Der neue Stil scheint noch nicht weit verbreitet zu sein (sagen wir in der gcc stl) Sollte dieser neue Stil jedoch überall in neuen C ++ 11-Programmen bevorzugt […]

Wie zeichne ich ein unique_ptr in einen Lambda-Ausdruck ein?

Ich habe Folgendes versucht: std::function getAction(std::unique_ptr &&psomething){ //The caller given ownership of psomething return [psomething](){ psomething->do_some_thing(); //psomething is expected to be released after this point }; } Aber es kompiliert nicht. Irgendwelche Ideen? AKTUALISIEREN: Wie bereits erwähnt, ist eine neue Syntax erforderlich, um explizit anzugeben, dass wir das Eigentumsrecht auf das Lambda übertragen müssen. Ich […]

Erstellen Sie N-Element-Constexpr-Array in C ++ 11

Hallo ich lerne C ++ 11, ich frage mich, wie man eine constexpr 0 bis n-Array, zum Beispiel: n = 5; int array[] = {0 … n}; So Array kann {0, 1, 2, 3, 4, 5}

Wie man einen Modulo (%) Operator in C / C ++ / Obj-C, der negative Zahlen behandelt, codiert

Einer meiner Lieblingshetze von C-abgeleiteten Sprachen (als ein Mathematiker) ist das (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Was ist die beste Lösung? C ++ erlaubt die Möglichkeit, Vorlagen und Operatoren zu überladen, aber beides sind trübe Gewässer für mich. Beispiele dankbar erhalten.

Was ist der Unterschied zwischen std :: move und std :: forward

Ich habe das hier gesehen: Move Constructor, der die Basisklasse Move Constructor aufruft Könnte jemand erklären: der unterschied zwischen std::move und std::forward , vorzugsweise mit einigen code-Beispielen? Wie man leicht darüber nachdenkt, und wann man welches benutzt

Was sind die Vorteile von nullptr?

Dieses Stück Code macht konzeptionell dasselbe für die drei pointers (sichere pointersinitialisierung): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Und was sind die Vorteile der Zuweisung von pointersn nullptr gegenüber dem Zuweisen der Werte NULL oder 0 ?

Wie aktiviere ich C ++ 11 in gcc?

Ich benutze gcc 4.8.1 von http://hpc.sourceforge.net auf Mac OSX Mountain Lion. Ich versuche, ein C ++ – Programm zu kompilieren, das die function to_string in . Ich muss jedes Mal das Flag -std=c++11 : g++ -std=c++11 -o testcode1 code1.cpp Gibt es eine Möglichkeit, dieses Flag standardmäßig einzufügen?

Wie funktioniert std :: forward?

Mögliche Duplikate: Vorteile der Verwendung von vorwärts Ich weiß, was es tut und wann ich es benutzen kann, aber ich kann immer noch nicht sagen, wie es funktioniert. Bitte seien Sie so detailliert wie möglich und erklären Sie, wenn std::forward falsch wäre, wenn es erlaubt wäre, den Template-Argumentabzug zu verwenden. Teil meiner Verwirrung ist dies: […]