title: Can a cast operator be explicit?
body: <p>When it comes to constructors, adding the keyword <code>explicit</code> prevents an enthusiastic compiler from creating an object when it was not the programmer’s first intention. Is such mechanism available for casting operators too?</p>
  
  <pre><code>struct Foo
  {
      operator std::string() const;
  };
  </code></pre>
  
  <p>Here, for instance, I would like to be able to cast <code>Foo</code> into a <code>std::string</code>, but I don’t want such cast to happen implicitly.</p>