Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers
- Length: 480 pages
- Edition: 1
- Language: English
- Publisher: Addison-Wesley Professional
- Publication Date: 2015-12-27
- ISBN-10: 0134383583
- ISBN-13: 9780134383583
- Sales Rank: #41054 (See Top 100 Books)
As scientific and engineering projects grow larger and more complex, it is increasingly likely that those projects will be written in C++. With embedded hardware growing more powerful, much of its software is moving to C++, too. Mastering C++ gives you strong skills for programming at nearly every level, from “close to the hardware” to the highest-level abstractions. In short, C++ is a language that scientific and technical practitioners need to know.
Peter Gottschling’s Discovering Modern C++ is an intensive introduction that guides you smoothly to sophisticated approaches based on advanced features. Gottschling introduces key concepts using examples from many technical problem domains, drawing on his extensive experience training professionals and teaching C++ to students of physics, math, and engineering.
This book is designed to help you get started rapidly and then master increasingly robust features, from lambdas to expression templates. You’ll also 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, and procedural techniques. By the time you’re finished, you’ll have mastered all the abstractions you need to write C++ programs with exceptional quality and performance.
Table of Contents
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