Frage

Wie viele von uns wissen (und viele, viele mehr nicht), befindet sich C++ derzeit in der endgültigen Ausarbeitung der nächsten Überarbeitung des Internationalen Standards, die voraussichtlich in etwa zwei Jahren veröffentlicht wird.Entwürfe und Papiere sind derzeit bei erhältlich Website des Ausschusses.Es werden alle möglichen neuen Funktionen hinzugefügt, die größten sind Konzepte und Lambdas.Es gibt ein sehr umfassendes Wikipedia-Artikel mit vielen der neuen Funktionen.GCC 4.3 und höher implementieren einige C++0x-Funktionen.

Was die neuen Funktionen angeht, gefallen mir Typmerkmale (und die entsprechenden Konzepte) sehr gut, aber mein klarer Spitzenreiter sind Variadic-Vorlagen.Bis 0x waren lange Vorlagenlisten in der Regel mit dem Boost-Präprozessor verbunden und waren sehr umständlich zu schreiben.Dies macht die Sache viel einfacher und ermöglicht, dass C++0x-Vorlagen mithilfe variadischer Vorlagen wie eine perfekt funktionale Sprache behandelt werden.Ich habe bereits sehr coolen Code mit ihnen geschrieben und kann es kaum erwarten, sie öfter zu verwenden!

Auf welche Funktionen freuen Sie sich also am meisten?

War es hilfreich?

Lösung

Auto Schlüsselwort für Variablentyp Inferencing

Andere Tipps

Lambdas und initializer Listen.

, auch die Änderungen zu erleichtern, um schließlich C ++ zu bringen in ein Garbage Collection-Modell, scheinen diejenigen ziemlich interessant. Vielleicht bringt tatsächlich in Garbage Collection C ++ 1x, aber 0x / 10 nur Satz Dinge für den Fall auf.

Ich möchte Rvalues-Referenzen.

Alle anderen neuen Funktionen sind Dinge, auf die wir problemlos verzichten könnten (leider auf Funktionen).Das Fehlen von R-Werten in C++ hat jedoch bisher dazu geführt, dass Hunderte von Autoren von Vorlagenbibliotheken das Problem mit defekten R-Wert-Referenzen „herumhacken“ mussten.

Variadische Vorlagen! (Die mit r-Wert Referenzen kombiniert wird, gibt uns perfekt Forwarding!)

Themen und atomics.

Mit Multicore-Prozessoren jetzt die Norm C ++ 0x C ++ 07 sein sollte.

G.

stark typisierten Aufzählungen meine Stimme zu bekommen. Pascal hatte nur diese seit rund 40 Jahren, so ist es gut, C ++ schließlich Aufholprozess zu sehen.

Allerdings ist die Veröffentlichung der Norm wirklich ein Nicht-Ereignis. Was viel wichtiger ist, wenn die Funktionen, die Sie verwenden möchten, mit Werkzeugketten realen Welt tatsächlich vollständig und zuverlässig unterstützt werden. Es Leute sind, die tatsächlich scheinen schriftlich standardkonformen Code zu genießen, die auf jedem bekannten Compiler kompiliert fehlschlägt. Na dann viel Glück.

  1. Es hat die Einbeziehung einiger der Boost-Bibliotheken (shared_ptr <> und binden oben auf der Liste)

  2. sein
  3. Die Kontrolle über die Vorlage instatntiation schließlich das Problem der enormen Kompilierungszeiten lösen sollte und es tatsächlich möglich macht in großen Projekten modernen Template-Code zu verwenden.

  4. Template typedefs

Viele andere kleine, aber wichtige Dinge, aber sie tun Produktionscode egal in.

Hands down Konzepte für mich. Aber initializer Listen, Lambdas und variadische Vorlagen sind an zweiter Stelle.

ich nicht entscheiden kann zwischen Null-Zeiger-Typ , < a href = "http://en.wikipedia.org/wiki/C%2B%2B0x#Tuple_types" rel = "nofollow noreferrer"> Tuple Typen oder Regex . ‚Foreach‘ ist zu dort oben. 'Smart Pointers' versteht sich von selbst ...: -)

Grundsätzlich bin ich sehr gespannt auf das Update.

Ich persönlich denke, die starke Nutzung des Null-Zeiger-Typs wird eine Menge von Fehlern zu fangen. Tupeln sind für mit relationalen Daten handelt. Viele coole Sachen.

Es ist nicht groß, aber ich liebe die Idee eines echten nullptr . Sollte ein Schlüsselwort richtig gewesen von dem git-go.

Verschlüsse für mich.

Schlüsselwort auto

Lambdas und Konzepte

Winkelkonsole in verschachtelter Vorlage Erklärungen.

So kann ich schreiben

std::vector<std::vector<int>> a;

anstelle der schrecklichen

std::vector<std::vector<int> > a;

Die for (auto x : collection) Iteration Syntax ist so cool denke ich ... es buchstäblich schneidet die Größe vieler Schleifenköpfe um einen Faktor von 4 oder mehr (Iteratortypen sind oft ... ausführlich)!

Es bedeutet auch, Sie haben nicht zu dereferenzieren Iterator im Körper der Schleife (mit einer traditionellen Iterator Schleife, haben Sie immer *i oder i->... verwenden, um den Wert des Elements zu bekommen, aber hier können Sie nur verwenden, x), die in einigen Fällen macht den Code sieht viel schöner.

Unicode, Multithreading, hash_tables, intelligente Zeiger und reguläre Ausdrücke.

ps: Ich frage mich, warum sie kann nicht nur ein gr8 Code-Review tun und übernehmen Sie alle Boost- und tr1 Libs in den Standards und Leben für alle einfacher machen. Alles, was sie würden dann lösen müssen, ist auf einem Arbeits optional Garbage Collection Modell zustimmen.

Smart-Pointer. Es macht wirklich eine Welt des Unterschiedes nicht Heap zugewiesenen Objekte explizit speicher verwalten zu müssen.

Natürlich müssen Sie noch auf „wissen, was du tust“, aber nach meiner Erfahrung ist es, die Anzahl der speicherbezogene Fehler zumindest eine Größenordnung in der Software verringert ich gearbeitet habe.

Die Syntax immer schlechter geht.

Variadische Vorlagen und Lambda-Ausdrücke sind nett, obwohl die Syntax der beiden leider ziemlich zu beanstanden ist.

Ich mag constexpr besonders in Verbindung mit variadische Vorlagen und benutzerdefinierte Literale wir schließlich binäre Literale und viele andere Leckereien haben.

obj.bitmask |= 00001010B; 

REGEX !! und parallel librarys Programmierung obwohl ich weiß nicht, die Eigenschaften von allen noch.

Raw Stringliterale ! Ich dachte, dass Python-ähnliche Zeichenfolge Blöcke waren fantastisch, aber ich war falsch! In C ++ 0x rohen Stringliterale sind unglaublich nützlich für die Textformatierung. Markup-Sprachen direkt in Ihrer Quelle geschrieben werden können!

Zur Zeit habe ich viel von C ++ 0x mag, die ich gespielt habe mit:

  • nullptr
  • static_assert
  • lambdas
  • shared_ptr und weak_ptr
  • unique_ptr
  • decltype und auto

Ich habe versucht, <regexp> havent ... Ich dachte, es eine große Idee war ... aber ich habe nicht einmal die Zeit, um es zu betrachten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top