Overloaded constructor with default parametars
<p>I have two constructors overloaded like this, the problem is that the wrong constructor overload is entered :</p>

<pre><code>class Param
{ 
    Param(
     const std::string&amp; name,
     const MyVariant&amp; variant = MyVariant()
     const std::string&amp; desc = std::string(""),
     bool b1 = true,
     bool b2 = true )
     :
     mName(name),
     mValue(variant),
     mDesc(desc),
     mB1(b1),
     mB2(b2) {}

     Param( 
      const std::string&amp; name,
      const MyVariant&amp; variant,
      bool b1)
      :
      mName(name),
      mValue(variant)
      mB1(b1) {}

   private:
      std::string mName;
      MyVariant mValue;
      std::string mDesc;
      bool mB1;
      bool mB2;
};

 Param p("name",4,"desc"); // this enters the second constructor, not the first why ? 
</code></pre>
