Why don't C++ use signature binding instead of name binding for template arguments ??? Ex : signature A { int foo() const = 0; double bar() = 0; }; template<class T : A> class S { ... }; class B {...}; class C : public B { int foo() const; double bar(); }; S<C> s; ------------ LD