Higher-order Functions in C++: Techniques and Applications
Higher-order functions are functions that take other functions as arguments. This is very frequently used in functional languages, somewhat less so in C++, although this is slowly changing since C++11 gave us lambdas and `std::function`... and frequently people don't realize that `std::function` is not a tool that fills all use cases. This talk will first attempt to convince you that higher-order functions are useful; by both showing functionalities that you know that work with them already, and by showcasing some more interesting problems that can be solved easily by function composition. Next, it'll work through different approaches to implementing higher-order functions in C++ and their pros and cons, performance- and code-size-wise.