Foundations for Quantitative Programming
Daniel Hanson

#C++
#Modern_C++
#Finance
#STL
This practical book demonstrates why C++ is still one of the dominant production-quality languages for financial applications and systems. Many programmers believe that C++ is too difficult to learn. Author Daniel Hanson demonstrates that this is no longer the case, thanks to modern features added to the C++ Standard beginning in 2011.
Financial programmers will discover how to leverage C++ abstractions that enable safe implementation of financial models. You’ll also explore how popular open source libraries provide additional weapons for attacking mathematical problems. C++ programmers unfamiliar with financial applications also benefit from this handy guide.
The modern features that have been added to the C++ Standard beginning with C++11 in 2011 have been truly remarkable and transformative. Consider the following additions through 2017, which can be of immediate benefit to financial C++ developers, and in most cases are very easy to incorporate into code:
Updated versions of the C++ Standard have been released every three years since C++11, leading to the subsequent standard C++20 and the most recent C++23. In particular, these more recent features are also now available:
All the modern features mentioned here, plus coverage of popular open source C++ libraries such as Eigen (linear algebra) and the Boost libraries, are provided within this book, with a focus on relevant financial applications.
Table of Contents
Chapter 1. An Overview of C++
Chapter 2. Writing User-Defined Classes with
Modern C++ Features
Chapter 3. Inheritance, Polymorphism, and Smart Pointers
Chapter 4. The Standard Template Library Part I: Containers and Iterators
Chapter 5. The Standard Template Library Part II: Algorithms and Ranges
Chapter 6. Random Number Generation and Concurrency
Chapter 7. Dates and Fixed Income Securities
Chapter 8. Linear Algebra
Chapter 9. The Boost Libraries
Chapter 10. Modules and Concepts
Appendix A. Virtual Default Destructor
Appendix B. Object Slicing
Appendix C. Implementation of Move
Special Member Functions
Appendix D. Resolving Conflicts in the Initialization of a vector
Appendix E. valarray and Matrix Operations
About the Author
Daniel Hanson spent over 20 years in quantitative development in finance, primarily with C++ implementation of option pricing and portfolio risk models, trading systems, and library development. He now holds a full-time lecturer position in the Department of Applied Mathematics at the University of Washington, teaching quantitative development courses in the Computational Finance & Risk Management (CFRM) undergraduate and graduate programs. Among the classes he teaches is graduate-level sequence in C++ for quantitative finance, ranging from an introductory level through advanced. He also mentors Google Summer of Code student projects involving mathematical model implementations in C++ and R.









