template<typename T> class Base { }; class Derived: public Base<int> { }; int main() { Derived d; Base b(d); return 0; } Clang rejects that code, saying it can’t deduce the template parameters for Base. However I think that code is valid; it’s accepted by GCC. Is this a Clang bug?