tools for generic programming in C++ (11)