Conditional operator in member-initialization list
<p>Suppose I have this class:</p>

<pre><code>class foo
{
public:
    foo() { }
    foo(const std::string&amp; s) : _s(s) { }

private:
    std::string _s;
};
</code></pre>

<p>Which is a member of another class:</p>

<pre><code>class bar
{
public:
    bar(bool condition) : 
       _f(condition ? "go to string constructor" : **go to empty ctor**) 
    { 
    }

private:
    foo _f;
};
</code></pre>

<p>When initializing <code>_f</code> in <code>bar</code>'s member initialization list I would like to choose which constructor of <code>foo</code> to invoke based on <code>condition</code>.</p>

<p>What can I put instead of <code>go to empty ctor</code> to make this work? I thought of putting <code>foo()</code>, is there another way?</p>
