Articles of c ++ 11

Das neue Schlüsselwort = Standard in C ++ 11

Ich verstehe nicht, warum ich das jemals tun würde: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Warum nicht einfach sagen: S() {} // instead of S() = default; Warum ein neues Keyword dazu bringen?

Ist es in C ++ immer noch eine schlechte Methode, einen Vektor von einer function zurückzugeben?

Kurze Version: Es ist üblich, große Objekte – wie Vektoren / Arrays – in vielen Programmiersprachen zurückzugeben. Ist dieser Stil jetzt in C ++ 0x akzeptabel, wenn die class einen Move-Konstruktor hat, oder halten es C ++ – Programmierer für merkwürdig / hässlich / abscheulich? Lange Version: In C ++ 0x gilt das immer noch […]

Was liefert “ und wo wird es dokumentiert?

Der neue C ++ 11-Standard erwähnt einen Header , vermutlich in Analogie zu . Nun wissen wir, dass C ++ 11 neue Zeichentypen und Literale bringt, die speziell für UTF16 und UTF32 entworfen wurden, aber ich glaube nicht, dass die Sprache tatsächlich functionen enthalten würde, um die (systemabhängige) Enge-Multibyte-Codierung in eine zu konvertieren die Unicode-Kodierungen. […]

Was ist die Wertkategorie der Operanden von C ++ Operatoren, wenn nicht angegeben?

PRÄMISSE: Der C ++ 11-Standard klassifiziert Ausdrücke in drei disjunkte Wertekategorien : lvalues , xvalues und prvalues (§ 3.10 / 1). Eine Erklärung, welche Wertkategorien hier zur Verfügung stehen, finden Sie hier . Ich habe Mühe herauszufinden, welche Anforderungen die verschiedenen Operatoren an die Wertkategorie ihrer Operanden stellen. In Absatz 3.10 / 1 heißt es: […]

Keine Übereinstimmung mit C ++ 11 Regex

Warum findet das keine Übereinstimmungen in g ++ (Debian 4.6.3-1) 4.6.3 oder clang Version 3.2 (trunk 159457) #include #include #include using namespace std; int main() { string line(“test”); regex pattern(“test”,regex_constants::grep); smatch result; bool ret(false); ret = regex_search(line,result,pattern); cout << boolalpha << ret << endl; cout << result.size() << endl; return 0 ; } Ausgabe false […]

Das Lesen von ifstream liest keine Leerzeichen

Ich implementiere einen benutzerdefinierten Lexer in C ++ und wenn ich versuche, Whitespace zu lesen, wird der Ifstream es nicht lesen. Ich lese Zeichen für Zeichen mit >> , und alle Leerzeichen sind weg. Gibt es irgendeinen Weg, den ifstream dazu zu bringen, alle Leerzeichen zu behalten und es mir vorzulesen? Ich weiß, dass beim […]

Kann die GotW # 101 “Lösung” tatsächlich etwas lösen?

Lesen Sie zuerst Herb’s Sutters GotW Beiträge über Pimpl in C ++ 11: GotW # 100: Kompilierungs-Firewalls (Schwierigkeitsgrad: 6/10) GotW # 101: Kompilierungs-Firewalls, Teil 2 (Schwierigkeitsgrad: 8/10) Ich habe Probleme, die in GotW # 101 vorgeschlagene Lösung zu verstehen. Soweit ich das verstehe, sind alle Probleme, die in GotW # 100 mühsam getriggers wurden, wieder […]

Wird constexpr mit Lambda-functionen / -Ausdrücken unterstützt?

struct Test { static const int value = []() -> int { return 0; } (); }; Mit gcc-4.6 bekomme ich etwas wie error: function needs to be constexpr . Ich habe mehrere Kombinationen von constexpr an verschiedenen Orten constexpr , aber kein Glück. Wird constexpr auch für Lambda-functionen unterstützt (unabhängig vom angegebenen return )? […]

C ++ 0x Lambda-Capture nach Wert immer const?

Gibt es eine Möglichkeit, nach Wert zu erfassen und den erfassten Wert nicht konstant zu machen? Ich habe einen Bibliotheksfunktor, den ich erfassen und eine Methode nennen möchte, die nicht-const ist, aber sollte. Das Folgende kompiliert nicht, aber macht foo :: operator () const es behebt. struct foo { bool operator () ( const bool […]

Reihenfolge der Auswertung von Elementen in der Listeninitialisierung

In dem anderen Thema gab @Dietmar diese Lösung: template std::tuple parse(std::istream& in) { return std::tuple{ T(in)… }; } mit der Aussage, Die Verwendung der geschweiften Klammerinitialisierung funktioniert, da die Reihenfolge der Auswertung der Argumente in einer geschweiften Initialisierungsliste die Reihenfolge ist, in der sie angezeigt werden . (betone meine) Der relevante Text aus dem C […]