Explore functional programming concepts in C++ through this ACCU 2017 conference talk. Delve into the definition of functional programming and its valuable ideas applicable to C++ software design. Learn about immutable data types, persistent data structures, atomic references, and expression-oriented programming. Discover how to implement functional programming techniques in C++, including lambda expressions, builder patterns, and copy-on-write strategies. Examine the benefits and challenges of using immutable arrays, persistent data structures like singly linked lists and trees, and optional types. Gain insights into forward references, pipe filters, and how to balance between functional and imperative programming paradigms in C++.