Boost logo

Boost :

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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk