title: C++ function overload priority
body: <p>Why would the code give an output: <code>bool</code> ?
  Is there any way I could make the <code>const char*</code> to match the <code>string</code> version?</p>
  
  <pre><code>#include &lt;string&gt;
  #include &lt;iostream&gt;
  
  void func(bool)
  {
      std::cout &lt;&lt; "bool" &lt;&lt; std::endl;
  }
  
  void func(const std::string&amp;)
  {
      std::cout &lt;&lt; "string" &lt;&lt; std::endl;
  }
  
  int main(int argc, char* argv[])
  {
      func("hello");
  }
  </code></pre>