Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-09-27 10:52:01


Joel de Guzman <joel_at_[hidden]> writes:

> David Abrahams wrote:
>> Joel de Guzman <joel_at_[hidden]> writes:
>>
>>> Hi,
>>>
>>> Ok, as promised. Support for classic boost::tuple has been added.
>>> Now yer ole boost tuples are full fusion citizens. Now boost::tuple
>>> can do for_each, transform, fold, find, assign/convert to other
>>> fusion sequences, etc.
>>>
>>> Now there are 3 adapted sequences:
>>> 1) std::pair
>>
>> This one is going to cause me issues. I'm writing a unified library
>> to operate on static and dynamic sequences. Here's the
>> issue: is
>>
>> pair<int*,int*>
>>
>> a dynamic sequence that goes from the first pointer to the 2nd (as in
>> Boost.Range), or a static sequence with 2 elements (a la Fusion)?
>
> Both? I think, in as much as boost::array<int> is a dynamic
> sequence that STL algorithms can operate on, and at the same
> time, is also a static sequence fusion algorithms can handle,
> the same should be true for mono-sequences like pair<int*,int*>.

[what's a mono-sequence?]

It's not the same thing at all. In the case of array<int>, the
sequence has the same elements in either case; we're just talking
about two ways of accessing the same sequence. In the case of
std::pair there are two completely distinct interpretations, either of
which could be valid. In my case I think there are only two possible
choices:

  1. say that std::pair needs to be wrapped or otherwise
     transformed before I know how to treat it.

  2. pick one of the two interpretations.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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