C++11 programmieren
60 Techniken für guten C++11-Code
Torsten T. Will(Author)
Rheinwerk (Publisher)
1st Edition
Published on 28. February 2012
Book
Hardback
414 pages
978-3-8362-1732-3 (ISBN)
Description
Dieses Buch ist eine praktische Anleitung für den Einsatz von C++11. Es behandelt die Neuerungen gerade so, dass immer ein bestimmter Aspekt im Fokus steht, wie etwa die neuen Sprachmechanismen, Container, Pointer oder Algorithmen oder auch Neuerungen in der Standardbibliothek. Die Kapitel folgen einem strengen Prinzip: Hintergrund und Erklärung des Themas, Beispielcode, Interaktion und Vernetzung mit weiteren C++11-Neuerungen und schließlich das Mantra, eine Art Merksatz, der das Gelernte auf den Punkt bringt.
C++-Entwickler oder Entwickler, die auf C++ umsteigen, halten hiermit die richtige Lektüre in Händen.
Aus dem Inhalt:
* Neue Sprachmechanismen
* Initialisierung
* Typinferenz
* Syntax
* Lambdas und Funktoren
* Attribute
* Verschiebesemantik
* Designfragen
* Templates
* Sprachfeatures
* Zeichenketten
* Container, Pointer und Algorithmen
* Neue Container & Änderungen
* Zeigertypen
* Hilfsmittel
* Neues in der Standardbibliothek
* Multithreading
* Spezielle Bibliotheksaufgaben
* Zufallszahlen
* Fehlerbehandlung
* Anhang
* Deprecated
* Wahrscheinlichkeitsverteilungen
* Compilersupport
* Kompilierfähigkeit der Listings
C++-Entwickler oder Entwickler, die auf C++ umsteigen, halten hiermit die richtige Lektüre in Händen.
Aus dem Inhalt:
* Neue Sprachmechanismen
* Initialisierung
* Typinferenz
* Syntax
* Lambdas und Funktoren
* Attribute
* Verschiebesemantik
* Designfragen
* Templates
* Sprachfeatures
* Zeichenketten
* Container, Pointer und Algorithmen
* Neue Container & Änderungen
* Zeigertypen
* Hilfsmittel
* Neues in der Standardbibliothek
* Multithreading
* Spezielle Bibliotheksaufgaben
* Zufallszahlen
* Fehlerbehandlung
* Anhang
* Deprecated
* Wahrscheinlichkeitsverteilungen
* Compilersupport
* Kompilierfähigkeit der Listings
Reviews / Votes
»Das Buch beschränkt sich nicht auf die reformierte Syntax, sondern kümmert sich auch um die Änderungen in der Standardbibliothek. Jeder Neuerung widmet der Autor ein eigenes Kapitel. Dabei geht er stets gleich vor: Zunächst gibt er einen kleinMore details
Series
Language
German
Place of publication
Bonn
Germany
Dimensions
Height: 24 cm
Width: 16.8 cm
ISBN-13
978-3-8362-1732-3 (9783836217323)
Schweitzer Classification
Person
Torsten T. Will, Jahrgang 1970, beschäftigte sich schon während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn schon in seinen Anfängen fasziniert und begleitet. Andere Programmierprojekte bewältigte er vor allem in Pascal, Java, Scala und Python. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.
Content
. Vorwort. 11
0. Beispielkapitel. 17
TEIL I. Elementare Konzepte aus C++03. 25
1. Resource Acquisition Is Initialization. 27
2. Sicherheit durch Typen. 36
3. Erinnerung: Exception Safety. 43
4. C++-Standardbibliothek als Lösung. 48
TEIL II. Neue Sprachmechanismen. 59
5. Vereinheitlichte Initialisierung. 61
6. Selbst geschriebene Initialisierung mit Listen. 67
7. Beschränkte automatische Konvertierung. 74
8. Typinferenz bei der Initialisierung mit auto. 76
9. Const-Iteratoren mit cbegin und cend. 80
10. Typinformationen mit decltype. 83
11. Das neue Range-For. 89
12. nullptr ist das neue NULL. 100
13. Garantiert konstante Ausdrücke. 102
14. Sicherheit beim Kompilieren. 109
15. Funktoren lokal definieren. 114
16. Lambdas: anonyme Funktionen. 118
17. Zugriffsdeklaration für Lambda. 124
18. Funktionspointer sind out. 135
19. Explizites Überschreiben mit override. 139
20. Finale Klassen und Methoden. 145
21. Attribute, so viele Sie möchten. 152
22. Kopieren, Verschieben und Weiterleiten. 156
23. Klassen fürs Verschieben entwerfen. 163
24. Kein Return von RValue-Referenzen. 176
25. RValue-Referenzen für Perfect Forwarding. 181
26. Überladen auf RValues. 190
27. Methoden per delete und default. 196
28. Konstruktor-Delegation. 201
29. Membervariablen initialisieren. 210
30. Konstruktoren erben. 213
31. Explizite Konvertierung. 216
32. Templates mit variabler Argumentanzahl. 221
33. Alias für Templates. 229
34. Klassen-Enums sind typsicher. 232
35. Keine Exceptions bei noexcept. 236
36. Unterstützung von Unicode. 243
37. Rohstringliterale. 247
38. Rezept für benutzerdefinierte Literale. 250
TEIL III. Neues zu Containern, Pointern und Algorithmen. 259
39. Tupel, das bessere Paar. 261
40. Ungeordnete Container. 265
41. Neue Liste nur für vorwärts. 271
42. unique_ptr statt auto_ptr. 275
43. Smarte Pointer. 285
44. Mehr Algorithmen für Container. 295
45. Sets sind nicht mehr modifizierbar. 300
46. Standardcontainer passend schrumpfen. 302
47. function und bind. 306
48. Die Verwendung von swap. 313
TEIL IV. Neues in der Standardbibliothek. 319
49. Parallel arbeiten. 321
50. Threads als Basis für Parallelität. 326
51. Futures und Promises mit async. 329
52. Lebensdauer von Daten. 337
53. Mutexe, Locks und mehr. 341
54. Memory Order und Fences. 348
55. Reguläre Ausdrücke. 355
56. Ende der Umrechnungsfehler. 362
57. Rechnen mit Zeiteinheiten. 365
58. Wahrscheinlichkeitsverteilungen. 368
59. Der richtige Würfel. 372
60. Hierarchie der Exceptions. 377
61. Fehlerfälle mit Fehlercode. 380
62. Eigene Fehlerwerte erstellen. 387
. Anhang. 395
. A. Abgewöhnen. 397
. B. Wahrscheinlichkeitsverteilungen. 399
. C. Compilersupport für C++11. 402
. D. Kompilierfähigkeit der Listings. 405
. Index. 407
0. Beispielkapitel. 17
TEIL I. Elementare Konzepte aus C++03. 25
1. Resource Acquisition Is Initialization. 27
2. Sicherheit durch Typen. 36
3. Erinnerung: Exception Safety. 43
4. C++-Standardbibliothek als Lösung. 48
TEIL II. Neue Sprachmechanismen. 59
5. Vereinheitlichte Initialisierung. 61
6. Selbst geschriebene Initialisierung mit Listen. 67
7. Beschränkte automatische Konvertierung. 74
8. Typinferenz bei der Initialisierung mit auto. 76
9. Const-Iteratoren mit cbegin und cend. 80
10. Typinformationen mit decltype. 83
11. Das neue Range-For. 89
12. nullptr ist das neue NULL. 100
13. Garantiert konstante Ausdrücke. 102
14. Sicherheit beim Kompilieren. 109
15. Funktoren lokal definieren. 114
16. Lambdas: anonyme Funktionen. 118
17. Zugriffsdeklaration für Lambda. 124
18. Funktionspointer sind out. 135
19. Explizites Überschreiben mit override. 139
20. Finale Klassen und Methoden. 145
21. Attribute, so viele Sie möchten. 152
22. Kopieren, Verschieben und Weiterleiten. 156
23. Klassen fürs Verschieben entwerfen. 163
24. Kein Return von RValue-Referenzen. 176
25. RValue-Referenzen für Perfect Forwarding. 181
26. Überladen auf RValues. 190
27. Methoden per delete und default. 196
28. Konstruktor-Delegation. 201
29. Membervariablen initialisieren. 210
30. Konstruktoren erben. 213
31. Explizite Konvertierung. 216
32. Templates mit variabler Argumentanzahl. 221
33. Alias für Templates. 229
34. Klassen-Enums sind typsicher. 232
35. Keine Exceptions bei noexcept. 236
36. Unterstützung von Unicode. 243
37. Rohstringliterale. 247
38. Rezept für benutzerdefinierte Literale. 250
TEIL III. Neues zu Containern, Pointern und Algorithmen. 259
39. Tupel, das bessere Paar. 261
40. Ungeordnete Container. 265
41. Neue Liste nur für vorwärts. 271
42. unique_ptr statt auto_ptr. 275
43. Smarte Pointer. 285
44. Mehr Algorithmen für Container. 295
45. Sets sind nicht mehr modifizierbar. 300
46. Standardcontainer passend schrumpfen. 302
47. function und bind. 306
48. Die Verwendung von swap. 313
TEIL IV. Neues in der Standardbibliothek. 319
49. Parallel arbeiten. 321
50. Threads als Basis für Parallelität. 326
51. Futures und Promises mit async. 329
52. Lebensdauer von Daten. 337
53. Mutexe, Locks und mehr. 341
54. Memory Order und Fences. 348
55. Reguläre Ausdrücke. 355
56. Ende der Umrechnungsfehler. 362
57. Rechnen mit Zeiteinheiten. 365
58. Wahrscheinlichkeitsverteilungen. 368
59. Der richtige Würfel. 372
60. Hierarchie der Exceptions. 377
61. Fehlerfälle mit Fehlercode. 380
62. Eigene Fehlerwerte erstellen. 387
. Anhang. 395
. A. Abgewöhnen. 397
. B. Wahrscheinlichkeitsverteilungen. 399
. C. Compilersupport für C++11. 402
. D. Kompilierfähigkeit der Listings. 405
. Index. 407