Book description
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
- About This E-Book
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Preface
- Acknowledgments
- About the Author
- Chapter 1. C++ Basics
- Chapter 2. Classes
-
Chapter 3. Generic Programming
- 3.1 Function Templates
- 3.2 Namespaces and Function Lookup
- 3.3 Class Templates
- 3.4 Type Deduction and Definition
- 3.5 A Bit of Theory on Templates: Concepts
- 3.6 Template Specialization
- 3.7 Non-Type Parameters for Templates
- 3.8 Functors
- 3.9 Lambda
- 3.10 Variadic Templates
-
3.11 Exercises
- 3.11.1 String Representation
- 3.11.2 String Representation of Tuples
- 3.11.3 Generic Stack
- 3.11.4 Iterator of a Vector
- 3.11.5 Odd Iterator
- 3.11.6 Odd Range
- 3.11.7 Stack of bool
- 3.11.8 Stack with Custom Size
- 3.11.9 Deducing Non-type Template Arguments
- 3.11.10 Trapezoid Rule
- 3.11.11 Functor
- 3.11.12 Lambda
- 3.11.13 Implement make_unique
- 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
- Code Snippets
Product information
- Title: Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers
- Author(s):
- Release date: December 2015
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780134383682
You might also like
video
Angular - The Complete Guide [2023 Edition]
Learn all the fundamentals you need to know in order to get started developing Angular applications …
book
How Linux Works, 3rd Edition
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Learning SQL, 3rd Edition
As data floods into your company, you need to put it to work right away—and SQL …