The explicit keyword in C++

The explicit keyword prevents the compiler from using converting constructors for implicit conversions.
Don’t forget that constructors with a single non-default argument are also converting constructors.