Hi, Sohail Somani wrote:
If I am trying to make a fusion sequence mpl compatible, do I need to specialize mpl::is_sequence as well?
No. mpl::is_sequence just checks whether mpl::begin returns mpl::void_ (in this case it's not an MPL Sequence).
I had expected that the following should be true:
BOOST_MPL_ASSERT(( fusion::traits::is_sequence<myseq> )); BOOST_MPL_ASSERT(( mpl::is_sequence<myseq> ));
It is - once you bring the part of MPL support in that enables you to
use MPL Tag Dispatched Metafunctions on Fusion sequences:
#include
But the compilation fails on the second line.
That breakage should be intentional to make sure that mpl::is_sequence
won't start lying, otherwise a Fusion Sequence can be both an MPL
Sequence and not an MPL Sequence in the same program (see attached code).
Note that I fixed that problem very recently, so maybe your version of
mpl::is_sequence is still just lying.
For a recent CVS snapshot, Fusion sequences are always MPL Sequences.
They can be incompletely defined, however (and in this case your
compiler hopefully tells you that begin_impl