
Hi Andy,
Christophe, I'm sorry if my 2 cents won't be relevant since I'm not very familiar with neither MSM
I'm thankful for any help.
The most common reason for compiler slowliness/crashiness that I've seen came from too deep of a template recursion.
Agreed ;-)
I'm not totally sure, but I think that you're using mpl::vector, which, I think, is a form of a type list.
AFAIK, this would be mpl::list. mpl::vector is defined as (for example for vector4): template< typename T0, typename T1, typename T2, typename T3 > struct vector4 { typedef aux::vector_tag<4> tag; typedef vector4 type; typedef T0 item0; typedef T1 item1; typedef T2 item2; typedef T3 item3; ... }; So there is no recursion depth, at least not here. I think the culprit would more likely be the many mpl::fold. Thanks, Christophe