
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... 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? :-)