C++ is not a functional programming language. C++ has is roots in the procedural and object-oriented programming. So it's quite surprising that programming in a functional style becomes more and more important in C++. That is not only true for C++. That holds also for python, which has a lot of functional features and even for Java. Now Java has lambda-functions.