Boost logo

Boost :

From: Andreas Huber (ah2003_at_[hidden])
Date: 2003-02-24 15:47:13


[ ... ]
> > Has anyone else ever encountered similar problems with either 7.0 or
6.5?
>
>
> Yep, it's a known bug called "early template instantiation" (ETI). It's
> briefly described here -
> http://lists.boost.org/MailArchives/boost/msg39915.php.
>
> > Are there any workarounds?
>
>
> Sure. In your case, it would be as simple as this:
>
> #include <boost/mpl/aux_/msvc_eti_base.hpp>
>
> ...
>
> template< class Derived,
> class Context,
> class Transitions = empty_list,
> class InnerInitial = empty_list >
> class simple_state : public mpl::aux::msvc_eti_base< typename
> state_base_type<
> // ^^^^^^^^^^^^^^^^^^^^^^^^
> Derived, Context, Transitions, InnerInitial >::type >::type {};

Thanks very much! I wouldn't have dreamt that convincing 7.0 to compile it
will be soooo easy!

Best Regards,

Andreas

P.S. Is it a good idea to use mpl::aux::msvc_eti_base on all platforms (on
conforming compilers I'd expect it to "call" mpl::identity) or should I
#ifdef my way around it?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk