
Hartmut, I got the latest releases of Spirit and Wave, but unfortunately they break my code. The problem reported by VS 8 Compiler is mainly in the transform_iterator usage: E:\libraries\boost\include\boost-1_34\boost/iterator/transform_iterator.hpp(91) : error C2872: 'detail' : ambiguous symbol could be 'boost::detail' or 'boost::spirit::detail' E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(1214) : see reference to class template instantiation 'boost::transform_iterator<UnaryFunction,Iterator,Reference>' being compiled with [ UnaryFunction=const boost::wave::cpplexer::lex_token<> &(__cdecl *)(const boost::spirit::tree_node<boost::spirit::node_val_data<boost::wave::cpplexer::lex_iterator<token_groups::token_type>,boost::spirit::nil_t>> &), Iterator=const_child_iterator_t, Reference=const boost::wave::cpplexer::lex_token<> & ] E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(1099) : while compiling class template member function 'bool boost::wave::impl::pp_iterator_functor<ContextT>::dispatch_directive(const boost::spirit::tree_parse_info<IteratorT,NodeFactoryT> &,const boost::wave::cpplexer::lex_token<> &,const std::list<_Ty,_Ax> &)' with [ ContextT=boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy>, IteratorT=boost::wave::cpplexer::lex_iterator<token_groups::token_type>, NodeFactoryT=boost::wave::grammars::cpp_grammar_gen<boost::wave::cpplexer::lex_iterator<token_groups::token_type>,std::list<boost::wave::cpplexer::lex_token<>,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<>>>>::node_factory_type, _Ty=boost::wave::cpplexer::lex_token<>, _Ax=boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<>> ] E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(789) : while compiling class template member function 'const boost::wave::cpplexer::lex_token<> &boost::wave::impl::pp_iterator_functor<ContextT>::pp_token(bool)' with [ ContextT=boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy> ] E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(577) : while compiling class template member function 'const boost::wave::cpplexer::lex_token<> &boost::wave::impl::pp_iterator_functor<ContextT>::get_next_token(void)' with [ ContextT=boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy> ] E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(459) : while compiling class template member function 'const boost::wave::cpplexer::lex_token<> &boost::wave::impl::pp_iterator_functor<ContextT>::operator ()(void)' with [ ContextT=boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy> ] E:\libraries\boost\include\boost-1_34\boost/spirit/iterator/multi_pass.hpp(877) : while compiling class template member function 'boost::spirit::multi_pass<InputT,InputPolicy>::multi_pass(InputT)' with [ InputT=boost::wave::impl::pp_iterator_functor<boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy>>, InputPolicy=boost::wave::util::functor_input ] E:\libraries\boost\include\boost-1_34\boost/spirit/iterator/multi_pass.hpp(942) : while compiling class template member function 'boost::spirit::multi_pass<InputT,InputPolicy>::multi_pass(const boost::spirit::multi_pass<InputT,InputPolicy> &)' with [ InputT=boost::wave::impl::pp_iterator_functor<boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy>>, InputPolicy=boost::wave::util::functor_input ] E:\libraries\boost\include\boost-1_34\boost/wave/util/cpp_iterator.hpp(2217) : see reference to class template instantiation 'boost::spirit::multi_pass<InputT,InputPolicy>' being compiled with [ InputT=boost::wave::impl::pp_iterator_functor<boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy>>, InputPolicy=boost::wave::util::functor_input ] ..\..\..\parser\header_processor.cpp(159) : see reference to class template instantiation 'boost::wave::pp_iterator<ContextT>' being compiled with [ ContextT=boost::wave::context<token_groups::str_iter_type,token_groups::lex_iter_type,token_groups::input_policy,token_groups::hooking_policy> ] With Kind Regards, Ovanes Markarian On Thu, July 5, 2007 00:04, Hartmut Kaiser wrote: [...] With Kind Regards, Ovanes Markarian