about this book
This book isn’t meant to teach the C++ programming language. It’s about functional programming and how it fits in with C++. Functional programming provides a different way to think about software design and a different way of programming, compared to the imperative, object-oriented styles commonly used with C++.
Many people who see the title of this book may find it strange, because C++ is commonly mistaken for an object-oriented language. Although C++ does support the object-oriented paradigm well, it goes much further than that. It also supports the procedural paradigm, and its support for generic programming puts most other languages to shame. C++ also supports most (if not all) functional idioms quite well, as you’ll see. Each new version of the language has added more tools that make functional programming in C++ easier.
1.1 Who should read this book
This book is aimed primarily at professional C++ developers. I assume you have experience setting up a build system and installing and using external libraries. In addition, you should have a basic understanding of the standard template library, templates and template argument deduction, and concurrency primitives such as mutexes.
But the book won’t go over your head if you’re not an experienced C++ developer. At the end of each chapter, I link to articles explaining C++ features you may not yet be familiar with.