Forcing single-argument constructors to be explicit in C++?
<p>By default, in C++, a single-argument constructor can be used as an implicit conversion operator. This can be suppressed by marking the constructor as explicit.</p>

<p>I'd prefer to make "explicit" be the default, so that the compiler cannot silently use these constructors for conversion.</p>

<p>Is there a way to do this in standard C++? Failing that, is there a pragma (or similar) that'll work in Microsoft C++ to do this? What about g++ (we don't use it, but it might be useful information)?</p>
