|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2002-12-16 18:54:06
Terje Slettebø <tslettebo_at_[hidden]> writes:
>>From: "David A. Greene" <greened_at_[hidden]>
>>
>> Rozental, Gennadiy wrote:
>> >>Which example is that? Is inherit_linearly documented somewhere?
>> >>
>> >
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost/boost/libs/mpl/example/
>> > inherit_linearly.cpp?rev=1.1&content-type=text/vnd.viewcvs-markup
>>
>> Well, that's not creating a boost::tuple. :) I could certainly use
>> mpl::fold or some similar algorithm to create boost::tuple<int,
>> boost::tuple<...> > > > but I'm not sure that "really" a boost::tuple
>> either. cons<int, cons<...> > > > might be closer.
Yes, in fact, the cons< ... > structure satisfies all the requirements
for a tuple. boost::tuple is just a friendly wrapper which presents
an easy interface.
> Here's one way. This handles tuples of up to three elements, but can easily
> be extended.
>
> It requires partial specialisation, but it could also be rewritten without
> it. In fact, I wrote a more complex version without it first, using
> compile-time if-else, but then realised I could use specialisations for
> this.
<snip>
Oof!
The version using fold<> is sure to be shorter and more-general!
-- David Abrahams dave_at_[hidden] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk