Write Powerful, Modern C++ Code for Scientific, Engineering, and Embedded Applications
Discovering Modern C++, Second Edition, will help you master valuable skills for programming with C++ at nearly every level, from close to the hardware to high-level abstractions.
Updated for C++17 and C++ 20, this intensive introduction teaches C++ using realistic examples from diverse technical problem domains. Drawing on extensive experience teaching C++ to physicists, mathematicians, engineers, and students, Peter Gottschling guides you smoothly to sophisticated approaches based on advanced features.
Whatever your programming experience, you'll rapidly master increasingly powerful features, from lambdas to expression and variadic templates. Gottschling also shows you how to apply C++'s libraries: both the Standard Template Library (STL) and scientific libraries for arithmetic, linear algebra, differential equations, and graphs. Step by step, you'll learn to write clear and expressive code using object orientation, generics, metaprogramming, and procedural techniques, and master all the abstractions you need to write high-quality, well-performing software. Quickly master core features: variables, operators, expressions, statements, functions, error handling, I/O, arrays, pointers, references, and more Make the most of classes and object-oriented programming, from constructors/destructors to operator overloading and multiple inheritance Apply advanced generic programming and template-based techniques Use C++'s libraries to write more robust and powerful code more quickly Explore metaprogramming in depth, and master cutting-edge optimization techniques Walk through representative scientific projects, and create your own Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
A very interesting book for people interested in advanced C++ programming for scientific and engineering applications. It contains a lot of quite advanced stuff, I will not suggest it for beginners: you'd better have already a basic knowledge of the language. There is a quick introduction to C++, but more useful for reference than for learning. Indeed the focus of the book is more to present C++ programming technique useful in the context of scientific programming (but not only for scientific programming!). A book you should have if you are interested in modern scientific computing with c++.
Really goes into introductory-intermediate level features of C++, while giving a teaser into the more advanced features like expression templates. This is all done while using C++ good practices in the context of developing performant/maintainable scientific software.