Is there a one-liner to unpack tuple/pair into references? : <p>I frequently write snippets like</p>

<pre><code>int x,y,z; tie(x,y,z) = g[19];
</code></pre>

<p>where, for instance, <code>g</code> was declared earlier</p>

<pre><code>vector&lt;tuple&lt;int,int,int&gt;&gt; g(100);
</code></pre>

<p>Problem is, maybe later I actually want <code>x</code> and <code>y</code> to point to the internals of <code>g</code> by reference, and the refactoring is ugly, e.g.</p>

<pre><code>int &amp;x = get&lt;0&gt;(g[19]);
int &amp;y = get&lt;1&gt;(g[19]);
int &amp;z = get&lt;2&gt;(g[19]);
</code></pre>

<p>or sometimes even worse, for instance if the access is a more complex expression</p>

<pre><code>tuple&lt;int,int,int&gt; &amp;p = g[19]; // if the rhs was actually more complicated
int &amp;x = get&lt;0&gt;(p);
int &amp;y = get&lt;1&gt;(p);
int &amp;z = get&lt;2&gt;(p);
</code></pre>

<p>Is there a better refactoring, more in the style of the assignment to tie(..)? </p>

<p>The difficulty as I understand it is that references insist on being initialized <a href="http://en.cppreference.com/w/cpp/language/reference_initialization">exactly at their declaration</a>. So, in possibly other words, is there a way to use <code>tie</code>-like syntax for multiple variable <em>initialization</em> in c++ (this would also make the earlier non reference usage cleaner)?</p>
