std::tie vs std::make_tuple : <p><a href="http://ideone.com/bGk17H" rel="noreferrer">This code compiles</a> but I'm wondering which version should be preferred:</p>

<pre><code>#include &lt;iostream&gt;
#include &lt;tuple&gt;
using namespace std;

tuple&lt;int, int, int&gt; return_tuple1() {
    int a = 33;
    int b = 22;
    int c = 31;
    return tie(a, b, c);
}

tuple&lt;int, int, int&gt; return_tuple2() {
    int a = 33;
    int b = 22;
    int c = 31;
    return make_tuple(a, b, c);
}

int main() {
    auto a = return_tuple1();
    auto b = return_tuple2();
    return 0;
}
</code></pre>

<p>since the function is returning a tuple by value there shouldn't be any problem in using <code>std::tie</code> right? (i.e. no dangling references)</p>
