The way to achieve this is to provide another constructor that would be a better match, and then delete it so you'll get an error. For your class, adding
template <typename T>
A(T) = delete;
Will stop the class from being constructed from anything that isn't an int