ference with a temporary

tuple&lt;const double&amp;&gt;(d+3.14)    // ok, but dangerous: 
                                // the element becomes a dangling reference 
</code></pre>

<p>Using an initial value for an element that cannot be copied, is a compile
time error:

<pre><code>class Y { 
  Y(const Y&amp;); 
public:
  Y();
};

char a[10];

tuple&lt;char[10], Y&gt;(a, Y()); // error, neither arrays nor Y can be copied
tuple&lt;char[10], Y&gt;();       // ok
</code></pre>

Note particularly that the foll