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
book
Modern C++ Programming with Test-Driven Development
If you program in C++ you've been neglected. Test-driven development (TDD) is a modern software development …
book
Discovering Modern C++, 2nd Edition
Write Powerful, Modern C++ Code for Scientific, Engineering, and Embedded Applications Discovering Modern C++, Second Edition, …
video
Multi-Paradigm Programming with Modern C++
C++ is a multi-paradigm language that lets you solve a problem in different ways, and this …
book
Data Structures and Algorithms in C++, Second Edition
An updated, innovative approach to data structures and algorithms Written by an author team of experts …