title: Why is the use of tuples in C++ not more common?
body: <p>Why does nobody seem to use tuples in C++, either the <a href="http://www.boost.org/doc/libs/1_39_0/libs/tuple/doc/tuple_users_guide.html" rel="noreferrer">Boost Tuple Library</a> or the standard library for TR1? I have read a lot of C++ code, and very rarely do I see the use of tuples, but I often see lots of places where tuples would solve many problems (usually returning multiple values from functions).</p>
  
  <p>Tuples allow you to do all kinds of cool things like this:</p>
  
  <pre><code>tie(a,b) = make_tuple(b,a); //swap a and b
  </code></pre>
  
  <p>That is certainly better than this:</p>
  
  <pre><code>temp=a;
  a=b;
  b=temp;
  </code></pre>
  
  <p>Of course you could always do this:</p>
  
  <pre><code>swap(a,b);
  </code></pre>
  
  <p>But what if you want to rotate three values? You can do this with tuples:</p>
  
  <pre><code>tie(a,b,c) = make_tuple(b,c,a);
  </code></pre>
  
  <p>Tuples also make it much easier to return multiple variable from a function, which is probably a much more common case than swapping values. Using references to return values is certainly not very elegant.</p>
  
  <p>Are there any big drawbacks to tuples that I'm not thinking of? If not, why are they rarely used? Are they slower? Or is it just that people are not used to them? Is it a good idea to use tuples?</p>