Meeting CPlus Plus2013
|home |print view |recent changes |changed November 8, 2013 |
exact
|You are 34.228.115.216 <- set your identity!
go to start recent
changes

Sections: I am a Speaker at http://meetingcpp.com 2013 | Download Slides | C++1y: "Concepts-Lite" - Wie zukünftige Template Parameter Typisierung aussehen könnte | C++1y: "Concepts-Lite" - how a future template parameter type system might look like | Einfacheres C++ mit C++11 | Simpler C++ Code through C++11 |

I am a Speaker at http://meetingcpp.com 2013 ^

Download Slides ^


C++1y: "Concepts-Lite" - Wie zukünftige Template Parameter Typisierung aussehen könnte ^

Für die letzte Standardisierung mussten "Concepts" leider entfallen. Jetzt wird ein neuer Anlauf gewagt, um C++ template Parametern ein Typsystem und entsprechende frühe Prüfung von Template-Argumenten mit besseren Fehlermeldungen zu ermöglichen. Der Vortrag wird den aktuellen Stand der Diskussionen und der entsprechenden Sprachfeatures vorstellen und damit einen Ausblick geben, was in diesem Jahrzehnt noch vom C++ Standard für Concepts zu erwarten ist.

Concepts-Lite werden es ermöglichen, Anforderungen an typename Template Parameter genauer zu beschreiben und so

Wenn möglich werden Code-Beispiele auch mit Hilfe einer Prototypimplementierung eines "concepts-light"-fähigen Compilers demonstriert.

C++1y: "Concepts-Lite" - how a future template parameter type system might look like ^

The standardization of C++0x lead to the drop of the language feature called "concepts" due to the complexity of its specification and implementation. Now the protagonists of a type system for template parameters propose a new approach to get constraints on template parameters into the language standard. This will allow earlier template argument checking with better error messages. The talk will present the current discussion and proposed language features and thus will give an outlook on future C++ standard for concepts.

"Concepts-Lite" will allow to specify constraints for typename template parameters. Violating these constraints will allow better compiler error messages on template instantiation.

If possible, concrete code examples will be demonstrated with a prototypical "concepts-lite" compiler implementation.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3351.pdf


Einfacheres C++ mit C++11 ^

Mit dem Release des neuen ISO Standards für C++ in 2011 gibt es neue Syntax und Library Komponenten, die es erlauben C++ Programmcode einfacher zu gestalten. Aber auch lange existierende Library-Konzepte, wie Algorithmen der Standardbibliothek, werden oft in der Literatur und Ausbildung vernachlässigt, weil es zu kompliziert erscheint, dass Konzept der Funktoren zu erklären, oder weil die Fehlbenutzung der Algorithmen Template-Funktionen zu völlig unverständlichen Fehlermeldungen führt. Gerade letzteres bewirkt, dass viele C++ Programmierer eigentlich unnötigen Schleifencode immer wieder programmieren, anstatt nur die passenden Algorithmus-Funktion aufzurufen.

Das C++11 Feature Lambda und die aus der Boost Library bekannten bind() Expressions und function Objekte erlauben eine einfachere Nutzung der Algorithmen Library Funktionen direkt an der Aufrufstelle ohne eine separate Funktor Klasse zu programmieren

Neben diesem Beispiel bietet C++11 mit der universellen Initialisierungssyntax, der neuen Bedeutung von auto, Lambdas, variadic templates, neuen Library Komponenten wie die Smart-Pointer und der Unterstützung von Concurrency interessante Aspekte, die dazu führen, dass man mit C++11 deutlich einfacher programmieren kann als mit dem früheren Standard-C++.

Der Vortrag wird zeigen, wie Sie einfacheren und eleganteren Code schreiben können und vor allem auf potentiell fehlerträchtige Sprachkonstrukte verzichten können.

Simpler C++ Code through C++11 ^

With the release of the new ISO C++11 standard there are several areas where new syntax and library components will make writing C++ code simpler. For example, many textbooks and teachers refrain from introducing STL algorithms early on, because explaining functors or function pointers and dealing with the sometimes monstrous compiler error messages they believe is too hard for students. This makes C++ programmers writing the same kinds of loops over and over again, where they could have just called a corresponding algorithm instead. But that is just one area where C++03 leaves something to desire for writing simpler code. One could argue if a loop or calling an algorithm with a dedicate functor or a complex bind()-expression is simpler. C++11 remedies that a lot through either lambdas or the now standardized function type and bind() function.

Now we have a new standard and its universal initialization syntax, new meaning of auto, lambdas, concurrency support, variadic templates, new library components and more. The talk will show how some of the new features and also existing features can be employed to simplify C++ code and say more with less. It will also touch some parts of Boost, especially boost/operators.hpp, that haven't been obsoleted by C++11 to show how to get even simpler code when needed for the examples.


Last edited November 8, 2013 go to start recent
changes