C++ abstractions aren't about making things simpler or about hiding complexity from the programmer. They're about reducing duplication and allowing solutions to be expressed in the domain of the problem. C++11 intentionally made things more complicated to add more ways to do that.