
Hi there While trying to port my fsm proposal to BCC5.6.4, I encountered the following compiler error: "simple_state.hpp": E2188 Expression syntax at line 389 The error is in the following code: // ... typedef typename context_type::outermost_context_type outermost_context_type; typedef typename context_type::inner_context_ptr_type context_ptr_type; typedef typename context_type::state_list_type state_list_type; // *** error on the following line *** typedef intrusive_ptr< inner_context_type > inner_context_ptr_type; typedef typename detail::make_list< InnerInitial >::type inner_initial_list; BOOST_STATIC_CONSTANT( detail::orthogonal_position_type, no_of_orthogonal_regions = mpl::size< inner_initial_list >::value ); typedef typename mpl::push_front< typename context_type::context_type_list, context_type >::type context_type_list; // ... I don't have a clue what BCC's problem is here, for the following reasons: - This code compiles just fine on MSVC7.1, GCC3.2 and Intel8.0 - The line on which the error is reported looks completely harmless to me - No amount of commenting out code following the problem line changes anything in BCC's diagnosis Does anyone have any hints on how to resolve this? Thanks & Regards, Andreas P.S. The full code can be found at http://boost-sandbox.sf.net/fsm.zip or in the sandbox CVS. The error appears while trying to compile the StopWatch example.

"Andreas Huber" <ah2003@gmx.net> wrote
While trying to port my fsm proposal to BCC5.6.4, I encountered the following compiler error: [snip]
It looks BCB doesn't like when the typedef name is the same as typedef member. This change made the error disappear: typedef MostDerived inner_context_type2; <<--- added 2 suffix typedef boost::intrusive_ptr< inner_context_type2 > inner_context_ptr_type; More bugs follow and I will look on them now (I didn't last week because my machine needed reinstall). /Pavel

Pavel has just sent me a workaround by private email. Andreas
participants (2)
-
Andreas Huber
-
Pavel Vozenilek