There is no way to explicitly specify templates for a constructor, as you cannot name a constructor.
Depending on what you're trying to do, this can be used:
#include <iostream>
#include <typeinfo>
struct A
{
template <typename T>
struct with_type {};
template<typename T>
A(int x, with_type<T>)
{
std::cout << "x: " << x << '\n'
<< "T: " << typeid(T).name() << std::endl;
}
};
int main()
{
A a(42, A::with_type<double>());
}
This "cheats" by taking advantage of type deduction.
This is quite unorthodox, though, so there's probably a better way of doing what you need.