Sometimes its behavior baffles me. I have a scaled down implemented string class which has a constructor which takes a const char*. The + operator is overloaded for concatenation and so I can add a string literal to an object of the class via a constructor conversion.
So out of curiosity I decided to make that constructor explicit to check that I could no longer convert from a const char*. To my surprise, it didn't complain on compilation and carried out the conversion. I compiled it again and again and the same result. I even whimsically made all of the other constructors explicit out of desperation, still no error.
It was only after rebooting and firing up VC++ again that the explicit specifier was taken notice of. Is there something obvious that I'm missing here, or is VC++ just a couple of sandwiches short of a picnic?