Class template argument deduction - why does it fail here?

Implicit deduction guides are only generated for constructors in the primary template, not for constructors of specializations.

You need to add the deduction guide explicitly:

C(int) -> C<int>;