This an intensive guide for anyone who needs to master the advanced features of C++ quickly. It introduces the powerful features of C++ 14 most useful for scientific and engineering applications, without assuming previous programming or C++ experience. Readers will learn how to take advantage of the powerful libraries available to C++ programmers: both the Standard Template Library (STL) and scientific libraries for arithmetic, linear algebra, differential equations, and graphs. Throughout, Gottschling demonstrates how to write clear and expressive software using object orientation, generics, metaprogramming, concurrency, and procedural techniques.
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 (TM)t Dresden in 2002.
Chapter 1: C++ Basics
Chapter 2: Classes
Chapter 3: Generic Programming
Chapter 4: Libraries
Chapter 5: Meta-Programming
Chapter 6: Object-Oriented Programming
Chapter 7: Scientific Projects
Appendix A: Clumsy Stuff
Appendix B: Programming Tools
Appendix C: Language Definitions
Bibliography
Index
Discovering Modern C++ will quickly lead you to the more sophisticated styles and advanced features that are typically used for scientific and engineering applications. Learning to program C++ is probably the fastest way to master the full spectrum of computing power available on today's hardware. This book covers techniques for programming "close to the bare metal" hardware as well as more abstract high-level programming constructs. The lower-level programming like user-definable memory management empowers you as programmer to understand what really happens during the execution, which in turn helps you to understand the behavior of programs and allows you to write extremely efficient programs. C++ shines in particular when you need to develop large, highly complex software that demands good performance, but the development process does not need to slow and painful. This book demonstrates that with the right abstractions at hand, you can write C++programs quite rapidly for a variety of problem domains. "