From: John Maddock (john_at_[hidden])
Date: 2006-12-14 08:35:16


Weapon Liu wrote:
> I personally very like this fancy facility, and that's why I present
> these mumbles here to annoy you guys( if so, my apologies go here:-))
> Any comments?

I can give you one use I have for tuples:

I have a piece of boilerplate code that accepts a tuple (of any size) and
prints out either a csv file or a boost::array C++ code conaining the data
passed.

It allows me to output data for graphing, or matrixes of test data very
quickly just by creating a short function that returns a tuple, and then
passing that function to my boilerplate. If I want more columns of data I
just increase the size of tuple by 1.

I suppose I could have used a vector instead, but it's less elegant somehow.

I've also used tuples in place of struct's whenever I have an API that needs
to return more than 2 items. For example I have some root finding
algorithms that accept a unary functor whose root is to be found: the
functor returns a tuple containing the function evaluation, plus the first
two derivatives. Using a tuple here simplified both implementation and
documentation. Had I felt the need, I could have performed compile time
dispatch to different algorithms based on how many derivatives were
available (the tuples size).

HTH, John.