
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.