why does it call bool_function first?
<p>I am curious about the following code, somebody could explain why does it call bool func first ? isn`t "str" more suitable for arg type string ?</p>

<pre><code> void a(bool input)
    {
        cout&lt;&lt;"I amd first"&lt;&lt;endl;
        cout&lt;&lt;input&lt;&lt;endl;
    }

    void a(const string &amp;input)
    {
        cout&lt;&lt;"I amd second"&lt;&lt;endl;
        cout&lt;&lt;input&lt;&lt;endl;
    }

    int main( )
    {
        a("str");  //  call  void a(bool input)

        a(string("str"));   //call  void a(const string &amp;input)

        return 0; 
    }
</code></pre>
