It would be like function overloading. E.g. it is ok to do this:
void foo(int i) {
;
}
// Function overload ftw.
void foo(int i, int j) {
;
}
But it is not (yet) ok to do this:
template<typename T>
class Foo {
};
// Fail!
template<typename T1, typename T2>
class Foo {
};
Does this feature not exist in order simply to avoid confusion? Or is there some reason this wouldn't actually make sense?