title: Make argument explicit?
body: <p><a href="https://en.cppreference.com/w/cpp/language/explicit" rel="nofollow noreferrer"><code>explicit</code></a> can be used on eg. a constructor or conversion function to avoid implicitly calling that constructer/conversion - in short.</p>
  
  <p>Im interested in if it is possible to make a single argument <a href="/questions/tagged/explicit" class="post-tag" title="show questions tagged &#39;explicit&#39;" rel="tag">explicit</a> somehow (short of roling a new type) ? perhaps using compiler extensions ?</p>
  
  <p>Using a reference makes copy-construction impossible, so that is a solution, albeit not the one im looking for. It would be neat tool/interface specifier sometimes to be able to force <code>explicit</code> at a function level.</p>
  
  <pre><code>void f(std::string&amp; s); //cannot copy convert into s
  
  void f(const std::string&amp; t);//calling with char* allowed
  </code></pre>
  
  <p>Specificly for strings, what type should be used to avoid construction from <code>char*</code> ?</p>