In C++, concepts are essentially generics where templates are more like weird macros.