From: Joel de Guzman (joel_at_[hidden])
Date: 2006-12-14 17:51:41
Gennadiy Rozental wrote:
> "John Maddock" <john_at_[hidden]> wrote in message
>> 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
>> 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
> How the std::vector<boost::variant> is less elegant?
> 1. It's could be implemented in cpp file. Your tuple based solution is in
> header right?
> 2. It allows dynamically sized entries, so you could skip some of the
> default values
> 3. It's as fast of could be even faster since we don't need to pass big
> structures around
> The only drawback is that you need to know set of types ahead of time. But
> this is minor IMO and it's quite easy to add an extra type whether a need
Another drawback of std::vector<boost::variant> is speed, of course.
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk