FusionシーケンスをMPLシーケンスとして扱う

<boost/fusion/include/mpl.hpp>をインクルードすれば、FusionシーケンスをMPLシーケンスとして扱えるようになります。

#include <boost/fusion/include/vector.hpp>
#include <boost/fusion/include/mpl.hpp>
#include <boost/mpl/count_if.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/static_assert.hpp>

namespace fusion = boost::fusion;
namespace mpl = boost::mpl;

typedef fusion::vector<int, char, int> v;
const int count = mpl::count_if<v, boost::is_same<int, mpl::_> >::value;

BOOST_STATIC_ASSERT(count == 2);

int main() {}