Item 45: Use member function templates to accept "all compatible types."(Effective C++)
-
Use member function templates to generate functions that accept all compatible types.
-
If you declare member templates for generalized copy construction or generalized assignment, you'll still need to declare the normal copy constructor and copy assignment operator, too.