"Andreas Huber" <[EMAIL PROTECTED]> writes:

> Dave,
>
> "David Abrahams" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>> This looks seriously like ETI (early template instantiation) again.
>> Unfortunately I'm not sure exactly what the fix is; Aleksey is the
>> only person I know who really understands how to work around this.
>> One thing you could try:
>>
>> template< class Derived,
>>           class Context,
>>           class Transitions = empty_list,
>>           class InnerInitial = empty_list >
>> class simple_state
>>    : public mpl::identity<   // Here
>>       typename state_base_type<
>>          Derived, Context, Transitions, InnerInitial >::type
>>       >::type                // Here
>> {};
>
> Unfortunately this doesn't help, 7.0 reports
>
> d:\Data\StopWatch\StopWatch.cpp(58) : error C2516:
> 'boost::mpl::identity<T>::type' : is not a legal base class
> with
> [
> T=state_base_type<Derived,Context,Transitions,InnerInitial>::type
> ]
>
> But thanks anyway! I'll wait for Aleksey then...

One last shot-in-the-dark:  add this specialization:

    template <> class simple_state<int, int, int, int> {};

What ETI does is to use an instantiation of some template with all int
parameters internally as a stopgap measure while it's waiting to
discover what the parameters really are.  After this, I give up!

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to