|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2008-08-22 22:09:50
on Fri Aug 22 2008, "Peter Dimov" <pdimov-AT-pdimov.com> wrote:
> David Abrahams:
>> on Wed Aug 20 2008, "Peter Dimov" <pdimov-AT-pdimov.com> wrote:
>>
>>> Hi,
>>>
>>> Assume that I have a custom type sequence S that has two operations,
>>> size<S>::value and element<S,I>::type (with whatever spelling).
>>>
>>> What needs to be done to adapt S into a conforming MPL or Fusion
>>> sequence?
>>>
>>> In a perfect world, the answer would not require the inclusion any MPL
>>> or Fusion headers and would consist of three specializations. ;-)
>>
>> Well, if it's an MPL sequence it's a fusion sequence, IIUC. So you need
>> to decide which sequence to model
>> http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/concepts.html
>
> My original S is a random access sequence, so I'd probably want to
> model that.
>
>> According to
>> http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/forward-sequence.html
>> you can make a forward sequence with 5 specializations.
>
> That's manageable, but I'd need a random access iterator first. An
> integral constant, too, if I really don't want to include an MPL
> header. It would've been nice if I could just point MPL to size<> and
> element<> and tell it to build the rest of the required
> boilerplate. Patches welcome, you say? :-)
Always :-)
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk