Preface
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:
-
Move semantics, allowing transfer of object ownership without the performance overhead of copying (C++11)
-
Smart pointers, which dramatically reduce problems associated with raw pointers (C++11 and C++14)
-
Parallel standard algorithms that require only an additional parameter yet can speed up code by magnitudes (C++17)
-
Random number generation from common distributions (C++11)
-
Task-based concurrency, which can run tasks in parallel by simply replacing a couple of lines of code (C++11)
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:
-
A new date class, critical for fixed income applications (C++20)
-
Concepts, making template-based generic programs simpler to debug and more expressive (C++20)
-
Range adaptors, enabling the composition of algorithms in a modern functional form, while cutting out “the middleman” of inefficient object copying (C++20 and C++23)
-
Modules—say goodbye to
#includeand hello to safer code (C++20)
All the modern features mentioned here, plus coverage of popular open ...