Discovering Modern C++: C++ In-Depth
Autor Peter Gottschlingen Limba Engleză Paperback – 23 dec 2015
Preț: 265.98 lei
Preț vechi: 332.47 lei
-20% Nou
50.90€ • 52.74$ • 42.48£
Carte indisponibilă temporar
Specificații
ISBN-10: 0134383583
Pagini: 480
Dimensiuni: 185 x 234 x 23 mm
Greutate: 0.77 kg
Editura: Addison-Wesley Professional
Seria C++ In-Depth
Notă biografică
Peter Gottschling is founder of SimuNova, a company that works on developing the Matrix Template Library (MTL4) and offers C++ training. He is a member of the ISO C++ standards committee, vice-chair of Germany's programming language standards committee, and founder of the C++ User Group in Dresden. He earned his Ph.D. in computer science at Technische Universität Dresden in 2002.
Cuprins
Preface xviiReasons to Learn C++ xvii
Reasons to Read This Book xviii
The Beauty and the Beast xviii
Languages in Science and Engineering xix
Typographical Conventions xx
Acknowledgments xxiii
About the Author xxv
Chapter 1: C++ Basics 1
1.1 Our First Program 1
1.2 Variables 3
1.3 Operators 10
1.4 Expressions and Statements 21
1.5 Functions 28
1.6 Error Handling 34
1.7 I/O 40
1.8 Arrays, Pointers, and References 47
1.9 Structuring Software Projects 58
1.10 Exercises 63
Chapter 2: Classes 65
2.1 Program for Universal Meaning Not for Technical Details 65
2.2 Members 67
2.3 Setting Values: Constructors and Assignments 72
2.4 Destructors 89
2.5 Method Generation Résumé 95
2.6 Accessing Member Variables 96
2.7 Operator Overloading Design 100
2.8 Exercises 104
Chapter 3: Generic Programming 107
3.1 Function Templates 107
3.2 Namespaces and Function Lookup 115
3.3 Class Templates 123
3.4 Type Deduction and Definition 131
3.5 A Bit of Theory on Templates: Concepts 136
3.6 Template Specialization 136
3.7 Non-Type Parameters for Templates 144
3.8 Functors 146
3.9 Lambda 154
3.10 Variadic Templates 159
3.11 Exercises 161
Chapter 4: Libraries 165
4.1 Standard Template Library 165
4.2 Numerics 186
4.3 Meta-programming 198
4.4 Utilities 202
4.5 The Time Is Now 209
4.6 Concurrency 211
4.7 Scientific Libraries Beyond the Standard 213
4.8 Exercises 215
Chapter 5: Meta-Programming 219
5.1 Let the Compiler Compute 219
5.2 Providing and Using Type Information 226
5.3 Expression Templates 245
5.4 Meta-Tuning: Write Your Own Compiler Optimization 253
5.5 Exercises 283
Chapter 6: Object-Oriented Programming 287
6.1 Basic Principles 287
6.2 Removing Redundancy 298
6.3 Multiple Inheritance 299
6.4 Dynamic Selection by Sub-typing 306
6.5 Conversion 308
6.6 CRTP 316
6.7 Exercises 320
Chapter 7: Scientific Projects 321
7.1 Implementation of ODE Solvers 321
7.2 Creating Projects 332
7.3 Some Final Words 345
Appendix A: Clumsy Stuff 347
A.1 More Good and Bad Scientific Software 347
A.2 Basics in Detail 353
A.3 Real-World Example: Matrix Inversion 362
A.4 Class Details 371
A.5 Method Generation 375
A.6 Template Details 386
A.7 Using std::vector in C++03 391
A.8 Dynamic Selection in Old Style 392
A.9 Meta-Programming Details 392
Appendix B: Programming Tools 403
B.1 gcc 403
B.2 Debugging 404
B.3 Memory Analysis 408
B.4 gnuplot 409
B.5 Unix, Linux, and Mac OS 411
Appendix C: Language Definitions 413
C.1 Value Categories 413
C.2 Operator Overview 413
C.3 Conversion Rules 416
Bibliography 419
Index 423