Schrödinger ist unser Mann fürs Programmieren! Er kann schon was, aber noch nicht C++. Schlau ist er, auch neugierig, aber zuweilen ungeduldig und etwas chaotisch. Er hasst Katzen und liebt WoW. Eigentlich der perfekte Partner, um endlich mal gründlich C++ zu lernen.
Zum Buch:
Ein Traum! Die volle Packung C++. Die nötige Theorie, viele Hinweise und Tipps [im Büro], Unmengen von gutem, aber auch schlechtem Code, der verbessert und repariert werden will [in der Werkstatt] mit viel Kaffee und Übungen und den verdienten Pausen [zu Hause im Wohnzimmer]. Und mittendrin ist Schrödinger und natürlich Du!
Schrödinger garantiert:
- Ausführlicher Einstieg in ANSI C++
- Doch auch für Fortgeschrittene ist einiges dabei
- Für die tägliche Programmierarbeit geeignet
- Jede Menge guter Beispiele
- Leichtes Lernen durch Abwechslung und Spaß
- Für Einsteiger, Umsteiger und Fortgeschrittene
Aus dem Inhalt:
- Ausführlicher Einstieg in ANSI C++
- Von Entwicklungsumgebungen, Basisdatentypen, Kontrollstrukturen, Arrays, Strings, Vektoren und Co. über Klassen und Streams bis zur STL und zu C++14
- Für die tägliche Programmierarbeit absolut geeignet
- Eine Menge guter Beispiele, ach, unzählige davon!
- Für Einsteiger und Umsteiger perfekt
Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Eine locker zu lesende Einführung für Einsteiger. «
freiesMagazin: »Wenn man sich als Leser auf dieses ungewohnte Konzept einlässt, hat man viel Spaß an der Lektüre«
c't: »Das Buch eröffnet einen praxisnahen Zugang zur Arbeit mit C++. «
Inhaltsverzeichnis
An den Leser . . . 2
Schrödingers Büro . . . 4
Schrödingers Werkstatt . . . 6
Schrödingers Wohnzimmer . . . 8
Impressum . . . 10
Inhaltsverzeichnis . . . 12
Vorwort . . . 23
1. Wir richten uns ein . . . : Entwicklungsumgebungen für C++ . . . 25
Brauche ich eine IDE zum Programmieren? . . . 26
Multikulturelle Sachen . . . 27
Mikroweiche Sachen . . . 28
Die X-Sachen . . . 29
Angebissene Äpfel . . . 30
Lass uns endlich loslegen . . . . . . 31
Übersetzen mit einer Entwicklungsumgebung . . . 31
g++ und clang++ . . . 35
. . . am Ende läuft es . . . 37
2. Elefanten können nicht fliegen, aber Schrödinger kann programmieren: Erste Schritte in C++ . . . 39
Was ist eigentlich ein Computerprogramm? Ganz kurz und knapp für alle Schrödingers . . . 40
Die Sache mit dem main-Dings . . . . . . 41
Unser erstes main-Dings soll laufen . . . . . . 43
Endlich entspannen und träumen! . . . 46
Kreuz und quer oder alles in Reih und Glied? . . . 47
Kein Kommentar? . . . 47
Wie komme ich hier zum Bildschirm . . . ? . . . 48
Auf dem Weg zum Bildschirm . . . 50
Badewanne schon voll? . . . 50
Gib mir fünf . . . 51
Stream me up, Scotty . . . 51
Gegenseitige Wahrnehmung . . . . . . 52
Manipulieren oder selber steuern? . . . 53
Noch ein wenig Brain-Streaming . . . 54
3. Verschiedene Typen für einen bestimmten Zweck: Die C++-Basistypen . . . 57
Starke Typen . . . 58
Mein Name ist Schrödinger . . . 59
Fundamentale und faule Typen . . . 59
Deklaration und Definition . . . 60
Ganzer Kerl dank . . . . . . 61
Zeichenfolgen von Ganzzahlen . . . 62
Positive und/oder negative Haltung und ein Endteil . . . 62
Die Sache mit der Wahrheit . . . . . . 63
Was nehmen wir für einen Typen? . . . 65
Die Welt der ganzen Kerle . . . 66
Was für den einen das Komma, ist für den anderen der Punkt . . . . . . 67
Das Pünktchen in der Werkstatt . . . 68
Am Ende war das Pünktchen . . . . . . 69
Zeichensalat . . . 70
Doch ein ganzer Kerl? . . . 71
Turmbau zu Babel . . . 72
Zum Flüchten . . . . . . 73
Unicode-Unterstützung . . . 73
Zeichen für die Welt . . . 74
Erste "Zeichen" für eine Pause . . . 76
Auf die Größe kommt es an . . . . . . 78
Je größer, desto besser . . . 79
The Final Frontier . . . 81
Gut, dass es Grenzen gibt . . . . . . 83
4. Von Zahlen verweht . . . : Arbeiten mit Zahlen . . . 85
Manueller Rechenschieber . . . 86
Erweiterter Grundrechenzuweisungsoperator . . . 87
Futter für den Prozessor . . . 88
Kopfrechnen . . . 90
Achtung vor den Doppelgängern . . . 90
Nachsitzen in Mathe . . . 92
Wenn Grenzen überschritten werden . . . 92
Ungenaues Pünktchen . . . 94
Schwächen offenlegen . . . 95
Mir raucht der Kopf . . . 97
Mathematische Spezialitäten . . . 99
Keine Ahnung, aber ich verwende es trotzdem . . . 101
Am Ende der Mathewelt . . . 104
Den Typ mag ich nicht . . . 106
Lass ihn doch . . . . . . 106
Automatische Promotion . . . 107
Mit dem Hammer auf die Schraube . . . 108
Warum man sich nicht auf JEDEN Typ einlassen sollte . . . . . . 110
Der sanfte Typ . . . 112
Automatische Typenableitung . . . 114
5. Eigene Entscheidungen treffen oder das Ganze nochmal bitte: Kontrollstrukturen in C++ . . . 115
Endlich selbstständig sein und eigene Entscheidungen treffen . . . 116
Verzweigung, Abzweigung oder Kreuzung . . . 119
Wrong turn? . . . 121
Ein ganz anderer Fall . . . 125
Den Fall bearbeiten . . . 127
Den Fall analysieren . . . 129
Also sprach Zarathustra . . . 131
Immer diese Wiederholungen . . . 134
Ein Schritt vor oder einer zurück . . . . . . 134
After a while . . . . . . 135
Now for it! . . . 136
Fußnoten nicht vergessen! . . . 137
Nach oben oder nach unten . . . 137
Und alles noch einmal . . . . . . 138
6. Von gleichen und unterschiedlichen Typen, dem Sternchen und anderen ungemütlichen Sachen: Arrays, Strings, Vektoren, Strukturen und Zeiger . . . 141
Gleiche Typen in einer Reihe aufstellen . . . 142
Die Frickel- und Fummelfraktion von Ze . . . 143
Die Ze-Strings . . . 144
Gib mir rohen Input (Bio-Arrays) . . . 145
Das macht keinen Spaß . . . 147
Krankheiten von Ze-Arrays und Ze-Strings . . . 148
Die gleichen Typen in einer Reihe aufstellen und wieder zurück . . . 150
Die Komfortklasse(n) von Ze++ . . . 150
Reduzierter Bioanteil in vector . . . 151
Reduzierter Bioanteil in string . . . 152
Nie mehr Bio(-Arrays) . . . 153
Am Ende hat es doch noch Spaß gemacht . . . 155
Die Mischlinge . . . 157
Zugriff auf die Mischlinge . . . 158
Endlich echte Schuhdaten . . . 159
Die gemischten Typen sind echt nützlich . . . 162
Von Unionen, Aufzählungen und Synonymen . . . 164
1, 2, Freddy kommt vorbei, 3, 4, schließe deine Tür . . . . . . 165
Die Lehre der Synonymie . . . 169
Leipziger Allerlei . . . 170
typedef Schrödinger hat_alles_kapiert_t . . . 172
Weißt du, wie viele Sternlein am Himmel stehen? . . . 174
Ich weiß, wo du wohnst . . . ! . . . 175
Einbruch in fremde Wohnungen . . . 176
Wohnorte ermitteln . . . 176
Sternenkunde . . . 177
Ze-Zeugs, Zeiger und wo soll das hinführen . . . ? ! . . . 178
Zeiger auf nichts . . . ! . . . 180
Wo geht's hier zur "Milky Way"? . . . 181
Wo gibt's hier frischen RAM? . . . 183
Alles neu . . . 183
Speicherhalde und Müllbeseitigung . . . 184
RAM mit WoW-Freunden auf Anfrage . . . 186
RAM Unleashed . . . 189
7. Funktionen, das Ende von Copy & Paste . . . : Funktionen . . . 193
Die Geister, die ich rufen will . . . 194
Meine Hausgeister . . . 195
Erster Kontakt zum Jenseits . . . 197
Geisterjäger im Wohnzimmer . . . 199
Opfergaben für die Geister . . . 201
Als Kopie übergeben (Call-by-Value) . . . 201
Als Adresse übergeben (Call-by-Reference) . . . 202
Referenzen als Funktionsparameter . . . 203
Ze-Zeugs als Funktionsparameter . . . 204
Strukturen und Klassen als Parameter . . . 205
Unsere Gaben wurden angenommen . . . . . . 206
Unendliche Stille . . . 208
Das Jenseits antwortet dir . . . 211
Zeiger als Rückgabewert . . . 212
Dinge, die man besser nicht beschwören sollte . . . . . . 212
Referenzen als Rückgabewert . . . 214
Die Stille ist zerrissen . . . 215
Hausgeister zurückgeben . . . . . . 217
Jetzt bist du ein Medium . . . 218
Spezielle Geister . . . 220
Werte für den Notfall . . . . . . 220
Gleicher Name, unterschiedliche Typen . . . 221
Rollerblades für Funktionen? . . . 221
main Programmende . . . 223
Jenseits von Eden . . . 224
Am Ende der Geisterwelt . . . 227
8. Wie aus Chaos Ordnung entsteht: Schlüsselwörter für Typen, Namensbereiche und die Präprozessor-Direktiven . . . 229
Eigenschaften ohne Ende . . . 230
Klasse, die Speicherklasse . . . 230
Typqualifikationen . . . 232
. . . und für die Funktionen auch noch Extrawürstchen . . . 233
Mindesthaltbarkeitsdatum ändern . . . 234
Gleich-Gültigkeitsbereich . . . 238
Extrawurst-Gültigkeitsbereich . . . 241
Einen neuen Lebensraum schaffen . . . 242
Betreten des neuen Lebensraumes . . . 243
Using me . . . 244
Ein eigenes kleines Königreich . . . 246
Anti-Globalisierung . . . 249
Anonymer Lebensraum . . . 250
Lebensraum im Wohnzimmer . . . 252
Das #Ding vor dem Compiler . . . 255
#include "paste ohne copy" . . . 256
#define "Symbol" und "Makro" . . . 256
Die Übersetzung dirigieren . . . 258
#Ich bestimme, was #du bekommst . . . 259
"No such file or directory", oder wo bin ich hier . . . . . . 260
Makros und Symbole, oder doch lieber nicht? . . . 261
#Ich h### all## v##sch###t . . . 263
Und jetzt alle zusammen! . . . 265
Die Zutaten für den leckeren Kuchen . . . 266
"Symbol(s) not found", oder eine Zutat fehlt . . . 267
Die Einkaufsliste mit den Zutaten . . . 268
Eine nützliche Einkaufsliste, was alles so in einer Headerdatei verwendet werden könnte/sollte/muss . . . . . . 268
Die Zutaten vorbereiten und abwiegen . . . 269
. . . und jetzt alles in die Schüssel . . . 270
Rein ins Vergnügen . . . 271
Meister der Quelldateien . . . 275
9. Von Hexenmeistern, Todesrittern und Datenkapseln: Klassen . . . 277
Oben-ohne-Programmierung . . . 278
Klasse, Klassen! . . . 279
Objekte zum Mitnehmen . . . 279
Ein Objekt erblickt das Licht der Welt . . . 280
Kontrolle: Du kommst hier nicht durch . . . 282
Bei Klassendefinitionen den Überblick behalten . . . 284
Tieferer Einblick in die Elementfunktionen der Datenkapsel . . . 286
Du darfst hier nur lesen . . . 288
Elementfunktionen voll im Einsatz . . . 289
Toll, diese Klassenfunktionen . . . 291
Objekte erstellen . . . 293
Objekte auf die Welt bringen . . . 294
Zugriff auf die Öffentlichkeit der Klasse . . . 295
Indirekter Zugriff auf die Öffentlichkeit . . . 295
Objekte verwenden . . . 296
Die Geschichte von Objekten . . . 299
Aufbauen und vernichten . . . 302
Dienst nach Vorschrift . . . 302
Wir übernehmen selbst . . . . . . 303
Konstruktoren mit mehreren Parametern . . . 304
Konstruktoren effektiver initialisieren . . . 305
Klassenelemente direkt initialisieren . . . 306
Am Ende alles wieder saubermachen . . . . . . 306
Frühjahrsputz . . . 307
(K)ein Kartenhaus . . . 310
Deep inside . . . 312
Spezielle Konstruktoren . . . 312
Praxis Dr. Schrödinger . . . 315
Wohnung von Dr. Schrödinger . . . 317
The Big Three . . . 318
Spezielle Daten in der Kapsel . . . 319
Gute Freunde kann niemand trennen . . . . . . 321
*Gong* Die letzte Runde wird eingeläutet . . . 323
Kampfanalyse . . . 328
10. Kino + WoW + Programmieren = viel Spaß: Überladen von Operatoren . . . 331
Eigene Rechengesetze . . . 332
Gestatten: operator . . . 332
Gesetze für die Herren Operatoren . . . 333
Operatoren nur für Freunde . . . 334
Die Pärchen verwenden die Operatoren . . . 335
Mit vereinten Kräften . . . 337
Glückliche Pärchen . . . 340
Einsame Operatoren überladen . . . 344
Das einsame Leben der einsamen Operatoren . . . 346
Am Ende bleibt ein einsamer Operator . . . 349
Weitere Operatoren überladen . . . 351
Logisch? Fast immer! . . . 351
"Typenverbiegenumwandler" überladen . . . 351
Input-Output-Kompott . . . . . . 352
Spezielle Operatorüberladungen in der Praxis . . . 354
Spezialitäten auf dem Sofa . . . 360
Funktionsobjekte . . . 360
Indexoperator [ ] überladen . . . 361
new und delete überladen . . . 361
11. Schrödinger macht sein Testament: Abgeleitete Klassen . . . 363
Erben ohne Erbschaftssteuer . . . 364
Ewig schleichen die Erben . . . 367
Damit keiner leer ausgeht . . . 371
Jetzt das Kleingedruckte lesen . . . 373
Zugriffsrechte für den Beerbten . . . 373
News: Konstruktoren vererben (C++11) . . . 376
Das Kleingedruckte in der Praxis . . . 377
So macht erben langsam Spaß . . . 380
Private Mitglieder durchreichen . . . . . . 381
Erbe verwenden und erweitern . . . 382
Redefinition . . . 383
Use me . . . . . . 383
Unser Anlageberater verwaltet das Erbe . . . 385
Ordentlich angelegt . . . 387
Konstruktives und destruktives Vererben . . . 389
Implizite Klassenumwandlung . . . 391
Wer bekommt was . . . . . . 392
Keiner geht leer aus . . . . . . 394
Mehrfachvererbung . . . 396
Mehrfachvererbung in der Praxis . . . 398
Lohnt sich die Mehrfachvererbung überhaupt? . . . 401
Virtuelles Vererben . . . 403
Virtuelle Teilchen verwenden . . . 405
Zwischen Virtualität und Realität . . . 406
Abstrakte Welten . . . 408
Ein alter Bekannter . . . . . . 408
Abstrakte Vielgestaltigkeit . . . 410
Jetzt wird es vielseitig -- Polymorphie . . . 411
Virtuelle Zerstörungskraft . . . 413
Was vom Abstrakten übrig blieb . . . 414
Was bist du denn? . . . 415
override und final . . . 416
12. Ausstechformen für die Plätzchen: Templates . . . 419
Funktionen zum Ausstechen . . . 420
Verschiedene Teigsorten . . . 422
Plätzchen backen . . . 424
Am Ende sind nur noch Krümel da . . . . . . 428
Klassen zum Ausstechen . . . 429
Klassen-Ausstecher-Elementfunktion definieren . . . 430
Klassen-Ausstecher-Elementfunktion überschreiben . . . 431
Objekte ausstechen . . . 432
Klassen-Ausstecher in der Praxis . . . 433
Klassen-Ausstecher in der Wohnung . . . 438
13. Der Schleudersitz für den Notfall: Ausnahmebehandlung . . . 441
Versuchen, werfen und auffangen . . . 442
Noch ein paar Hinweise für das Werfen . . . 444
Jetzt schmeiß schon! . . . 446
Was passiert danach . . . ? . . . 447
Homerun . . . 450
Mit Klassen um sich schmeißen . . . 453
Nix wie weg hier . . . 453
Schmeißen mit ganzen Klassen . . . 455
Homerun mit Klassen . . . 458
(Standard-)Ausnahmen im Angebot . . . 461
What ist dein Problem . . . ? . . . 462
Ausnahmen im System . . . 463
Wir probieren es aus . . . 464
Logischer Fehler: out_of_range . . . 464
Logischer Fehler: invalid_argument . . . 465
Logischer Fehler: length_error . . . 466
Logischer Fehler: ios_base::failure . . . 467
Standardausnahme-Kontrolle . . . 468
Ausnahme-Spezifikation und noexcept ? . . . 470
noexpect . . . 470
Hasta la vista, baby . . . 471
Ausnahmen verweigern . . . 472
Keine Erwartungen . . . 474
14. Unterwäsche, 100 % Baumwolle, Doppelripp: Die Standardklasse string . . . 475
Schurz, Schürzen, Schürzenjäger . . . 476
Strings anlegen und zuweisen . . . 476
Zugriff auf die einzelnen Zeichen . . . 479
Wie groß isses denn? . . . 480
Rohe Strings . . . 480
Noch mehr Unterwäsche . . . 481
Und noch mehr davon . . . 483
Klamottenkiste . . . 485
String konvertieren und manipulieren . . . 485
Such! . . . 486
Überladene Operatoren und Ein-/Ausgabe . . . 488
Ich kann's nicht mehr hören: Strings . . . 490
Alles sauber dank "Schwarzer Zwerg" . . . 494
15. Ströme ohne Isolierkabel verwenden: Der Umgang mit Streams und Dateien . . . 495
Gib aus den Strom . . . 496
Rohe Eier raus . . . . . . 498
Mehr formatierter Output bitte . . . 499
Wir schwenken die Flagge . . . . . . 500
Jetzt ist es raus . . . . . . 502
Wir ändern die Richtung . . . 505
Rohe Eier rein . . . . . . 505
Wo ist mein Input? . . . 507
Jetzt ist es drin . . . . . . 511
Wir manipulieren die Ströme . . . 513
Manipulation ist alles . . . . . . 516
Ordentlich manipuliert . . . . . . 520
Auch ein Strom hat seine Fehler . . . 522
Erst den Strom abstellen . . . . . . 524
Die Sicherung ist geflogen . . . 525
Kann man auch was speichern? . . . 526
Datei-Slang . . . 526
Vorhandene Ströme für Dateien . . . 527
Strom für die Datei anschließen . . . 527
Plug-ins für den Dateistrom . . . 528
Den Dateistecker ziehen . . . 530
Alles gesichert . . . ? . . . 531
Sauber lesbare Sache . . . 531
Stück für Stück . . . 532
Zeile für Zeile . . . 534
Ganze Happen . . . . . . 535
Wahlfreier Zugriff . . . 536
Daten wiederherstellen . . . 537
Ein Strom für einen String? . . . 541
Schürzenjäger-Strom . . . 543
Ohne Isolation . . . 545
16. Ausstechformen für Faule: Einführung in die Standard Template Library (STL) . . . 547
Fertigkuchen von Dr. STL . . . ? . . . 548
Verschiedene Behälter (Container) . . . 549
Algorithmen und Iteratoren . . . 551
Besser als "Selbermachen" . . . 552
. . . und schmeckt auch noch gut! . . . 555
Detaillierteres Arbeiten mit sequenziellen Fertigkuchen . . . 558
Behälter erstellen . . . 558
Zutaten hinzufügen . . . 559
Zugriff auf den Teig . . . 560
Wie viel passt rein, und wie viel ist drin . . . ? . . . 561
Raus damit . . . ! . . . 561
Tausch mit mir, oder gib mir alle . . . 562
Mixen, sortieren und rühren . . . 562
Sequenzielle Fertigkuchen abschmecken . . . 563
Bereit zum Essen . . . . . . 568
Detaillierteres Arbeiten mit assoziativen Fertigkuchen . . . 570
set und multiset . . . 571
map und multimap . . . 572
Bitte ein Bit-Feld . . . ! . . . 572
Assoziative Kuchen backen . . . 573
(multi)set me up, baby! . . . 573
Now (multi)map me! . . . 575
Bitte ein Bit! . . . 576
Auch assoziative Kuchen kann man essen . . . 579
Zwischen Fertigkuchen und weiteren Zutaten . . . 581
Funktionsobjekte . . . 581
Kategorie von Iteratoren . . . 583
Iterator-Adapter . . . 585
Die Hilfsmittel für Fertigkuchen und Zutaten im Einsatz . . . 586
Hilfe für den Iterator . . . 588
Allmählich wird es öde . . . . . . 589
Die fleißigen Arbeiter . . . 592
Nicht-modifizierende Algorithmen . . . 592
Modifizierende Algorithmen . . . 593
Löschende Algorithmen . . . 594
Mutierende Algorithmen . . . 595
Sortierende Algorithmen . . . 596
Algorithmen für sortierte Bereiche . . . 597
Algorithmen verwenden . . . 598
Ende gut, alles gut . . . . . . 602
17. Schöne neue Welt C++11: C++11 - der neue Standard . . . 605
C++ auf dem neuesten Stand(ard) . . . 606
auto/decltype . . . 607
Einfachere Initialisierung . . . 607
Lambda-Funktionen . . . 608
Range-based-loop . . . 608
Explizite delete- und default-Funktionen . . . 609
nullptr . . . 609
constexpr . . . 610
Ein Konstruktor ruft einen anderen Konstruktor auf . . . 611
Move your body . . . 611
Neues Zeugs im Einsatz . . . 613
auto/decltype . . . 613
{}-Initialisierer verwenden . . . 613
Lambda-Funktion . . . 614
Move my own class . . . 615
Cool, das neue Zeugs . . . 616
Weitere nützliche Features . . . 617
Noch mehr Neuigkeiten . . . . . . 619
Ein neues Array? . . . 619
Eine neue verkettete Liste? . . . 620
Hasch? Ist das nicht illegal? ! . . . 620
Neue Algorithmen . . . 621
Tuple? Tulpe? . . . 622
Neue Planeten braucht das Universum . . . 623
Neue Backmischungen sind auch gut . . . 626
Kluge Zeiger . . . 628
Ich bin der Klügste hier (shared_ptr) . . . 630
Schwacher Zeiger (weak_ptr) . . . 631
Egoistischer, aber kluger Zeiger (unique_ptr) . . . 633
Klug auch in der Praxis . . . 634
Bist du auch so klug . . . ? . . . 637
Von Hieroglyphen und regulären Ausdrücken . . . 639
Mini-Sprachkurs zu den Hieroglyphen . . . 639
Objekt für die Hieroglyphen . . . 643
Die Algorithmen für Hieroglyphen . . . 643
Suchergebnis analysieren . . . 644
Suchen mit Hieroglyphen . . . 645
Cleopatra ist da . . . . . . 652
Parallele Welten . . . 654
Viele Fäden erzeugen . . . 655
Bist du jetzt ein Faden oder nicht? . . . 657
Argumente für den Thread . . . 657
Wir nehmen jetzt die Fäden in die Hand . . . 658
Nur nicht den Faden verlieren . . . 661
Schütze deine Daten . . . 663
Ein Schloss für den Mutex . . . 666
Sicheres Initialisieren . . . 667
Totgesperrt . . . 668
Einmal bitte . . . . . . 670
Am Ende des Fadens . . . . . . 672
"Konditions"-Variable . . . ? . . . 672
Zusammenfassung . . . 674
18. C++ 14 -- der Neue! : C++14 -- der allerneueste Standard . . . 675
Schon wieder ein neuer Standard? . . . 676
Der Compiler weiß es doch sowieso immer besser . . . 677
Dann mach es doch auch selbst bei den Lambda-Funktionen . . . 677
Gammelcode an den Compiler verraten? . . . 678
Etwas für die Bitverdreher unter uns . . . 679
Und dann noch etwas für die Zahlenzerstückler . . . 680
Mr. Holmes, bitte übernehmen Sie . . . . . . 681
Der Tanz mit den Lambda-Parametern . . . 682
Alte Sachen aufheben oder ausmisten? . . . 683
Mir reicht es jetzt mit der neuen Welt . . . 684
Noch ein paar mehr C++14-Sachen . . . 685
Index . . . 689