I am able to avoid the implicit conversion of a constructor using the explicit keyword. So now, conversions like A a1 = 10; can be avoided.
explicit
A a1 = 10;
Explicitly delete the constructor for double (possibly add float):
double
float
A(double) = delete;