C++11 - Praxiswissen zum neuen Standard

C++11 - Praxiswissen zum neuen Standard

 

 

 

von: Peter Pohmann

entwickler.press, 2013

ISBN: 9783868026306

Sprache: Deutsch

300 Seiten, Download: 3728 KB

 
Format:  EPUB, PDF, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop
Typ: A (einfacher Zugriff)

 

eBook anfordern

Mehr zum Inhalt

C++11 - Praxiswissen zum neuen Standard



1 Einleitung

1.1 Ist dieses Buch für Sie?

Als C++-Entwickler haben Sie natürlich mitbekommen, dass 2011 endlich der neue Standard C++11 verabschiedet wurde. Aber es geht Ihnen vielleicht wie den meisten: Sie stecken im Tagesgeschäft, haben Deadlines zu beachten und unvorhersehbare Fixes zu liefern. Bis jetzt blieb Ihnen keine Zeit, um sich die Neuerungen mal anzusehen oder gar darüber nachzudenken, wie Sie sie in Ihrer Arbeit einsetzen wollen. Die vorhandenen Bücher zu C++11 sind alle recht umfangreich, erheblich umfangreicher jedenfalls als das ursprüngliche C++-Buch „Die C++ Programmiersprache“ von Bjarne Stroustrup aus dem Jahr 1985. Das alles zu lesen, zu verstehen sowie die Vor- und Nachteile abzuwägen, dafür hat die Zeit bisher einfach nicht gereicht.

Wenn diese Beschreibung auf Sie zutrifft, dann ist dieses Buch genau das Richtige für Sie. Es strebt nicht danach, möglichst alle Aspekte des neuen Standards ausführlichst zu beschreiben, sondern gibt Ihnen so knapp wie möglich das nötige Wissen und Verständnis an die Hand, die neuen Möglichkeiten sofort einzusetzen. Es beginnt bei den Erläuterungen nicht bei Adam und Eva, sondern setzt voraus, dass Sie über ein solides Praxiswissen verfügen. Andererseits erwartet es von Ihnen nicht, dass Sie die theoretischen Grundlagen von Programmiersprachen noch auswendig aufsagen können. Ein großer Wert liegt darauf, zu jeder Neuerung zu erläutern, wie und wann man sie einsetzen kann. Ab und zu steht hier auch einmal, dass Sie das eher nicht brauchen werden oder lieber die Finger davon lassen sollten.

Vom Aufbau her stehen die einzelnen Kapitel, von denen jedes genau ein neues Feature beschreibt, weitgehend für sich. So brauchen Sie es nicht unbedingt von vorne bis hinten zu lesen, sondern können sich auch einfach die Themen heraussuchen, die Ihnen am interessantesten erscheinen. Weil natürlich manche Neuigkeiten auf anderen aufbauen, finden Sie an den entsprechenden Stellen die Verweise auf die nötigen Voraussetzungen.

1.2 Aufbau

Die Kapitel sind locker zu vier Themenbereichen zusammengefasst. Im ersten Teil „Sprache“ geht es um Erweiterungen an der Programmiersprache selbst. Hier werden hauptsächlich neue Schlüsselwörter oder neue Bedeutungen vorhandener Schlüsselwörter vorgestellt.

Anschließend kommt ein Teil über „Templates“, den Sie komplett überspringen können, wenn Sie keine Templates bei Ihrer Arbeit einsetzen. Hier sind sowohl Spracherweiterungen als auch Bibliothekserweiterungen zusammengefasst, die das Programmieren mit Templates betreffen. Früher oder später sollten Sie sich übrigens schon mit diesem Themengebiet auseinandersetzen, aber dieser Teil des Buches ist nicht der geeignete Startpunkt dafür.

Im dritten Teil geht es um die Erweiterungen der Standardbibliothek. Er ist mit „Bibliothek“ überschrieben und enthält Dutzende von neuen Funktionen und Klassen, angefangen von ganz einfachen Dingen wie den Funktionen next und prev bis zu umfangreichen Bibliotheken wie der für Zufallszahlen.

Alles, was mit paralleler Programmierung zu tun hat, fasst der vierte Teil unter „Multi-Threading“ zusammen. Auch hier kommen sowohl Sprach­erweiterungen als auch neue Bibliotheksklassen vor, weil sie zusammen ein sinnvolles Ganzes ergeben. Wenn diesem Ihr Hauptinteresse gilt, fangen Sie einfach damit an und folgen den Verweisen für die wenigen Spracherweiterungen und Bibliotheksklassen, die als Grundlage benötigt werden.

Im Anhang finden Sie ein Glossar, das einige Fachbegriffe rund um C++ erläutert. Diese Begriffe gehören zwar nicht zu den Neuerungen in C++11, sie tauchen aber im Hauptteil auf und sind dann doch so speziell, dass sie nicht jeder sofort parat haben kann. Immer wenn Sie den Pfeil vor einem Wort sehen wie in ? trivialer Typ, dann wissen Sie, dass es dazu einen Glossareintrag gibt.

Auch die Beschreibung jedes einzelnen Leistungsmerkmals hat einen sich wiederholenden Aufbau. Zuerst kommt unter „Worum geht es?“ eine Kurzfassung, die in wenigen Sätzen erklärt, was das Feature tut. Darauf folgt unter der Überschrift „Was steckt dahinter?“ eine Motivation und Erläuterung, wo erklärt wird, wieso das Feature eingeführt wurde und wie es funktioniert. Als Drittes kommen Tipps, wie Sie die Erweiterung am besten einsetzen und wie nicht. Dieser Abschnitt ist mit „Wie setzt man es ein?“ überschrieben. Unter „Wer unterstützt es?“ folgen Hinweise zur Compilerunterstützung in Visual C++ und gcc. Abschließend runden Verweise auf den Header und gegebenenfalls weiterführende Literatur die Beschreibung ab.

Damit Sie die für Sie interessanten Neuigkeiten möglichst schnell finden, gibt es neben einem umfangreichen Stichwortverzeichnis gleich anschließend eine Featuretabelle als Wegweiser. Hier finden Sie alle Erweiterungen von C++ mit einer Bewertung bezüglich Relevanz, Expertentum und Spezialwissen mit Verweis auf das jeweilige Kapitel.

1.3 Compiler

Bei den Compilern beschränkt sich dieses Buch auf die beiden meistverwendeten, nämlich Visual C++ unter Windows und GNU unter Linux. Viele Beispiele wurden sowohl mit MSVC 2012 als auch gcc 4.8 getestet. Oft war das aber nicht möglich, weil beide auch heute noch Lücken haben bei der Implementierung des neuen Standards.

Insbesondere für gcc ist auch nicht vollständig dokumentiert, ab welcher Version eine bestimmte Erweiterung der Standardbibliothek unterstützt wird. Deshalb finden Sie bei der Beschreibung der Compilerunterstützung öfter Formulierungen wie „spätestens ab 4.8“. Das bedeutet dann, dass laut Dokumentation und eigenen Tests das Feature in gcc 4.8 zur Verfügung steht, dass aber nicht bekannt ist, seit wann es schon existiert. Bei Microsoft Visual C++ bedeutet „voraussichtlich ab 2013“, dass das Feature für die Version 2013 geplant ist. Von dieser Version ist aber zum Zeitpunkt der Veröffentlichung dieses Buchs erst eine Preview verfügbar.

1.4 Dank

Dieses Buch wurde nicht nur vom Autor geschaffen. Mein Dank geht an meine Frau Judith und meine Söhne Simon und Philipp, die nicht nur viele Stunden auf Mann und Vater verzichten mussten, sondern auch auf den leistungsstärksten Computer unserer Familie. Peter Biereder und Jörg Roth haben sich durch das Manuskript gekämpft und geholfen, Fehler und Ungereimtheiten zu beseitigen. Sebastian Burkart vom Verlag hat das Projekt initiiert und mir mit Rat und Tat zur Seite gestanden.

1.5 Kontakt

Über Anmerkungen zu diesem Buch freue ich mich unter peter.pohmann@dataweb.de.

1.6 Neue Features im Überblick

Die folgende Tabelle soll Ihnen einen Überblick über die Neuheiten und ihre praktische Bedeutung geben. Jedes neue Feature hat eine Bewertung in den drei Kategorieren Relevanzfaktor, Expertenfaktor und Spezialistenfaktor. In jeder Kategorie bekommt das Feature ein bis drei Symbole für gering, mittel und ausgeprägt.

*** Relevanzfaktor: Je mehr Sternchen, desto wichtiger ist das Feature für Ihren Programmiereralltag. Features mit drei Sternchen sollten Sie möglichst sofort lesen und einsetzen, vorausgesetzt, es ist von allgemeiner Bedeutung oder für Ihr Spezialgebiet relevant.

!!! Expertenfaktor: Mehr Ausrufezeichen bedeuten höheren Lernaufwand. Ein Feature mit hohem Expertenfaktor und geringer Relevanz werden Sie sich wohl erst ansehen, wenn Sie einmal Zeit übrig haben oder wenn es für Ihr Spezialgebiet genau passt.

??? Spezialistenfaktor: Manche Features sind nur für spezifische Anwendungsfälle interessant, beispielsweise für Simulation oder systemnahe Programmierung. Auch wenn sie in diesen Anwendungsgebieten sehr wichtig sind, kommen viele Softwareentwickler auch gut ohne sie aus.

1.6.1 Sprache

Feature

Relevanz

Experte

Spe­zialist

Kapitel

Automatische Typbestimmung

***

!

?

2.1

Nachgestellter Ergebnistyp

*

!

?

2.2

Integrale Typen mit definierter Länge

**

!

?

2.3

Streng typisierte...

Kategorien

Service

Info/Kontakt

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek