The disadvantage of C++ templates is the structural type is implicit - you only know if the input object satisfies the type if you read the documentation, code, or can decipher the error message that occurs if it didn't.
Concepts would have fixed this, but we don't have concepts and maybe never will!
Concepts would have fixed this, but we don't have concepts and maybe never will!