You can have default template arguments, which are sufficient for your purposes:
template<class T, class U = T, class V = U>
class Test
{ };
Now the following work:
Test<int> a; // Test<int, int, int>
Test<double, float> b; // Test<double, float, float>