Higher order functions, functions that take functions as input, or return functions, are useful for making your code more composable and expressive. The evolution of the standard library with ranges, std::expected<> and the latest extensions to std::optional<>, makes the use of higher order functions so much more desirable. At the same time, the evolution of the core language has made them much easier to write.
I will show you techniques for increasing the expressiveness of your code
without sacrificing performance, and demonstrate how some of the recent
additions to the language and library improve the developer experience.