Articles of c ++ 11

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: […]

Verschiebe den Zuweisungsoperator und `if (this! = & Rhs)`

Im Zuweisungsoperator einer class 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; } Brauchen Sie das Gleiche für den Zuweisungsoperator? Gibt es jemals eine Situation, in der this == &rhs […]

Was ist Konstruktorvererbung?

Was ist in C ++ 11 gemeint, wenn man den Konstruktor erbt? Wenn es das ist, was ich denke (Basisklassenkonstruktor wird in den Geltungsbereich der abgeleiteten class gebracht), welche Auswirkungen hat das auf meinen Code? Was sind die Anwendungen für ein solches Feature?

Erstellen eines Array-Initialisierers aus Tupel- oder Variadic-Vorlagenparametern

Ich möchte die Beschreibung eines beständigen Speicherlayouts (z. B. Flash oder EEPROM-Gerät) darstellen, das statisch in den Programmcode eingebettet ist (vorzugsweise im ROM-Abschnitt), aus einem Satz variativer Template-Parameter, wobei die erforderlichen Offsets automatisch zur Kompilierzeit berechnet werden . Das Ziel besteht darin, einen geeigneten Array-Initialisierer zu erstellen, der zur Laufzeit iteriert werden kann, ohne die […]

Was bedeutet das einzelne Et-Zeichen nach der Parameterliste einer Memberfunktionsdeklaration?

Von der Antwort hier . class wrap { public: operator obj() const & { … } //Copy from me. operator obj() && { … } //Move from me. private: obj data_; }; Ich weiß, dass && bedeutet, dass das Element aufgerufen wird, wenn das Objekt eine rvalue-Referenz ist. Aber was bedeutet das einzelne kaufmännische Und? […]