Why doesn't C++ support contravariance in overridden virtual method parameters ?
class base {
virtual void func(ParamDerived* ptr) { return; }
};
class derived : public base {
// Shouldn't that be a valid override !?
virtual void func(ParamBase* ptr) override { return; }
};