Parser Problems with Boost 1.56

Programmers discuss here anything related to FreeOrion programming. Primarily for the developers to discuss.

Moderator: Committer

Post Reply
Message
Author
User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Parser Problems with Boost 1.56

#1 Post by Geoff the Medio »

I'm trying to update the Boost version to 1.56 as part of SDK refreshing. I'm having trouble with the parsers, which are generating massive slews of boost template garbage for error messages when using the new version. Anyone have any ideas what to do about these?

Code: Select all

1>------ Build started: Project: Parsers, Configuration: Release Win32 ------
1>Build started 06/09/2014 3:54:00 PM.
1>ClCompile:
1>  TechsParser.cpp
1>../../../Boost/include/boost/utility/result_of.hpp(189): error C2976: 'parse::report_error_::result' : too few template arguments
1>          c:\users\geoff\desktop\freeorion_vs2010_sdk_sept_2014\freeorion\parse\ReportParseError.h(45) : see declaration of 'parse::report_error_::result'
1>          ../../../Boost/include/boost/utility/result_of.hpp(197) : see reference to class template instantiation 'boost::detail::result_of_nested_result<F,FArgs>' being compiled
1>          with
1>          [
1>              F=const parse::report_error_,
1>              FArgs=const parse::report_error_ (boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::info &)
1>          ]
1>          ../../../Boost/include/boost/utility/detail/result_of_iterate.hpp(37) : see reference to class template instantiation 'boost::detail::tr1_result_of_impl<F,FArgs,HasResultType>' being compiled
1>          with
1>          [
1>              F=const parse::report_error_,
1>              FArgs=const parse::report_error_ (boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::info &),
1>              HasResultType=false
1>          ]
1>          ../../../Boost/include/boost/utility/detail/result_of_iterate.hpp(160) : see reference to class template instantiation 'boost::tr1_result_of<F>' being compiled
1>          with
1>          [
1>              F=const parse::report_error_ (boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::info &)
1>          ]
1>          ../../../Boost/include/boost/phoenix/core/detail/preprocessed/function_eval_10.hpp(221) : see reference to class template instantiation 'boost::result_of<F>' being compiled
1>          with
1>          [
1>              F=const parse::report_error_ (boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::lex::lexertl::iterator<boost::spirit::lex::lexertl::functor<parse::token_type,boost::spirit::lex::lexertl::detail::data,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,boost::mpl::true_>> ,const boost::spirit::info &)
1>          ]
1>          ../../../Boost/include/boost/utility/result_of.hpp(190) : see reference to class template instantiation 'boost::phoenix::detail::function_eval::result<Sig>' being compiled
1>          with
1>          [
1>              Sig=boost::phoenix::detail::function_eval (const boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0> &,const boost::phoenix::actor<boost::spirit::argument<0>> &,const boost::phoenix::actor<boost::spirit::argument<1>> &,const boost::phoenix::actor<boost::spirit::argument<2>> &,const boost::phoenix::actor<boost::spirit::argument<3>> &,boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,const boost::phoenix::default_actions &>)
1>          ]
1>          ../../../Boost/include/boost/utility/result_of.hpp(197) : see reference to class template instantiation 'boost::detail::result_of_nested_result<F,FArgs>' being compiled
1>          with
1>          [
1>              F=boost::phoenix::detail::function_eval,
1>              FArgs=boost::phoenix::detail::function_eval (const boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0> &,const boost::phoenix::actor<boost::spirit::argument<0>> &,const boost::phoenix::actor<boost::spirit::argument<1>> &,const boost::phoenix::actor<boost::spirit::argument<2>> &,const boost::phoenix::actor<boost::spirit::argument<3>> &,boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,const boost::phoenix::default_actions &>)
1>          ]
1>          ../../../Boost/include/boost/utility/detail/result_of_iterate.hpp(37) : see reference to class template instantiation 'boost::detail::tr1_result_of_impl<F,FArgs,HasResultType>' being compiled
1>          with
1>          [
1>              F=boost::phoenix::detail::function_eval,
1>              FArgs=boost::phoenix::detail::function_eval (const boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0> &,const boost::phoenix::actor<boost::spirit::argument<0>> &,const boost::phoenix::actor<boost::spirit::argument<1>> &,const boost::phoenix::actor<boost::spirit::argument<2>> &,const boost::phoenix::actor<boost::spirit::argument<3>> &,boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,const boost::phoenix::default_actions &>),
1>              HasResultType=false
1>          ]
1>          ../../../Boost/include/boost/utility/detail/result_of_iterate.hpp(160) : see reference to class template instantiation 'boost::tr1_result_of<F>' being compiled
1>          with
1>          [
1>              F=boost::phoenix::detail::function_eval (const boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0> &,const boost::phoenix::actor<boost::spirit::argument<0>> &,const boost::phoenix::actor<boost::spirit::argument<1>> &,const boost::phoenix::actor<boost::spirit::argument<2>> &,const boost::phoenix::actor<boost::spirit::argument<3>> &,boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,const boost::phoenix::default_actions &>)
1>          ]
1>          ../../../Boost/include/boost/phoenix/core/detail/preprocessed/call_10.hpp(166) : see reference to class template instantiation 'boost::result_of<F>' being compiled
1>          with
1>          [
1>              F=boost::phoenix::detail::function_eval (const boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0> &,const boost::phoenix::actor<boost::spirit::argument<0>> &,const boost::phoenix::actor<boost::spirit::argument<1>> &,const boost::phoenix::actor<boost::spirit::argument<2>> &,const boost::phoenix::actor<boost::spirit::argument<3>> &,boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,const boost::phoenix::default_actions &>)
1>          ]
1>          ../../../Boost/include/boost/phoenix/core/call.hpp(62) : see reference to class template instantiation 'boost::phoenix::detail::call_impl<Fun,Expr,State,Data>' being compiled
1>          with
1>          [
1>              Fun=boost::phoenix::detail::function_eval,
1>              Expr=const boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5> &,
1>              State=boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,
1>              Data=const boost::phoenix::default_actions &
1>          ]
1>          ../../../Boost/include/boost/proto/transform/when.hpp(194) : see reference to class template instantiation 'boost::phoenix::call<Fun>::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Fun=boost::phoenix::detail::function_eval,
1>              Expr=const boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5> &,
1>              State=boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,
1>              Data=const boost::phoenix::default_actions &
1>          ]
1>          ../../../Boost/include/boost/proto/matches.hpp(836) : see reference to class template instantiation 'boost::proto::when<Grammar,PrimitiveTransform>::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Grammar=boost::phoenix::detail::rule::function_eval,
1>              PrimitiveTransform=boost::proto::external_transform,
1>              Expr=const boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5> &,
1>              State=boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,
1>              Data=const boost::phoenix::default_actions &
1>          ]
1>          ../../../Boost/include/boost/phoenix/core/meta_grammar.hpp(66) : see reference to class template instantiation 'boost::proto::switch_<Cases>::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Cases=boost::phoenix::meta_grammar,
1>              Expr=const boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5> &,
1>              State=boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,
1>              Data=const boost::phoenix::default_actions &
1>          ]
1>          ../../../Boost/include/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp(103) : see reference to class template instantiation 'boost::phoenix::evaluator::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Expr=const boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5> &,
1>              State=const boost::phoenix::vector2<boost::phoenix::vector4<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>> *,boost::fusion::vector<parse::token_iterator &,const parse::token_iterator &,const parse::token_iterator &,const boost::spirit::info &> &,boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,boost::spirit::qi::error_handler_result &> &,boost::phoenix::default_actions> &,
1>              Data=boost::proto::envns_::empty_env
1>          ]
1>          ../../../Boost/include/boost/spirit/home/qi/nonterminal/error_handler.hpp(115) : see reference to class template instantiation 'boost::phoenix::result_of::actor<Expr,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,Dummy>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>,
1>              A0=params &,
1>              A1=boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>> &,
1>              A2=boost::spirit::qi::error_handler_result &,
1>              A3=void,
1>              A4=void,
1>              A5=void,
1>              A6=void,
1>              A7=void,
1>              A8=void,
1>              A9=void,
1>              Dummy=void
1>          ]
1>          ../../../Boost/include/boost/spirit/home/qi/nonterminal/error_handler.hpp(88) : while compiling class template member function 'bool boost::spirit::qi::error_handler<Iterator,Context,Skipper,F,action>::operator ()(Iterator &,const Iterator &,Context &,const Skipper &) const'
1>          with
1>          [
1>              Iterator=parse::token_iterator,
1>              Context=boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>>,
1>              Skipper=boost::spirit::qi::state_switcher_context<boost::spirit::lex::reference<const boost::spirit::lex::detail::lexer_def_<boost::spirit::lex::lexer<parse::spirit_lexer_base_type>>>,const char *const >,
1>              F=boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>>,
1>              action=fail
1>          ]
1>          ../../../Boost/include/boost/spirit/home/qi/nonterminal/error_handler.hpp(163) : see reference to class template instantiation 'boost::spirit::qi::error_handler<Iterator,Context,Skipper,F,action>' being compiled
1>          with
1>          [
1>              Iterator=parse::token_iterator,
1>              Context=boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,boost::fusion::cons<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>,boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> >,1>>>::type>>,boost::fusion::vector0<>>,
1>              Skipper=boost::spirit::qi::state_switcher_context<boost::spirit::lex::reference<const boost::spirit::lex::detail::lexer_def_<boost::spirit::lex::lexer<parse::spirit_lexer_base_type>>>,const char *const >,
1>              F=boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>>,
1>              action=fail
1>          ]
1>          ..\..\parse\TechsParser.cpp(175) : see reference to function template instantiation 'void boost::spirit::qi::on_error<fail,parse::token_iterator,void(TechManager::TechContainer &),parse::skipper_type,boost::spirit::unused_type,boost::phoenix::actor<Expr>>(boost::spirit::qi::rule<Iterator,T1,T2> &,F)' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>,
1>              Iterator=parse::token_iterator,
1>              T1=void (TechManager::TechContainer &),
1>              T2=parse::skipper_type,
1>              F=boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval,boost::proto::argsns_::list5<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<parse::report_error_>,0>,boost::phoenix::actor<boost::spirit::argument<0>>,boost::phoenix::actor<boost::spirit::argument<1>>,boost::phoenix::actor<boost::spirit::argument<2>>,boost::phoenix::actor<boost::spirit::argument<3>>>,5>>
1>          ]
1>../../../Boost/include/boost/utility/result_of.hpp(190): error C2955: 'parse::report_error_::result' : use of class template requires template argument list
1>          c:\users\geoff\desktop\freeorion_vs2010_sdk_sept_2014\freeorion\parse\ReportParseError.h(45) : see declaration of 'parse::report_error_::result'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:01:10.36
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
To avoid that, I can replace the call to report_error with a simpler output to std::cout, based on an example from the phoenix documentation...

Code: Select all

qi::on_error<qi::fail>(start, std::cout << phoenix::val("error!") << std::endl);
(continued...)

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Parser Problems with Boost 1.56

#2 Post by Geoff the Medio »

But after doing that, I get another similar set of errors...

Code: Select all

1>------ Build started: Project: Parsers, Configuration: Release Win32 ------
1>Build started 06/09/2014 3:58:49 PM.
1>ClCompile:
1>  TechsParser.cpp
1>..\..\parse\TechsParser.cpp(70): warning C4101: '_4' : unreferenced local variable
1>..\..\parse\TechsParser.cpp(68): warning C4101: '_2' : unreferenced local variable
1>..\..\parse\TechsParser.cpp(69): warning C4101: '_3' : unreferenced local variable
1>../../../Boost/include/boost/utility/result_of.hpp(189): error C2976: '`anonymous-namespace'::insert_tech_::result' : too few template arguments
1>          ..\..\parse\TechsParser.cpp(29) : see declaration of '`anonymous-namespace'::insert_tech_::result'
1>          ../../../Boost/include/boost/utility/result_of.hpp(197) : see reference to class template instantiation 'boost::detail::result_of_nested_result<F,FArgs>' being compiled
1>          with
1>          [
1>              F=const `anonymous-namespace'::insert_tech_,
1>              FArgs=const `anonymous-namespace'::insert_tech_ (boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,Tech *const &)
1>          ]
1>          ../../../Boost/include/boost/utility/detail/result_of_iterate.hpp(37) : see reference to class template instantiation 'boost::detail::tr1_result_of_impl<F,FArgs,HasResultType>' being compiled
1>          with
1>          [
1>              F=const `anonymous-namespace'::insert_tech_,
1>              FArgs=const `anonymous-namespace'::insert_tech_ (boost::multi_index::multi_index_container<const Tech *,boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique<boost::multi_index::tag<TechManager::CategoryIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Category>>,boost::multi_index::ordered_unique<boost::multi_index::tag<TechManager::NameIndex>,boost::multi_index::const_mem_fun<Tech,const std::string &,Tech::Name>>>> ,Tech *const &),
1>              HasResultType=false
1>          ]

[...many lines of template spam...]

1>          ]
1>../../../Boost/include/boost/utility/result_of.hpp(190): error C2955: '`anonymous-namespace'::insert_tech_::result' : use of class template requires template argument list
1>          ..\..\parse\TechsParser.cpp(29) : see declaration of '`anonymous-namespace'::insert_tech_::result'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:02:05.30
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Post Reply