{"action":"opened","issue":{"url":"https://api.github.com/repos/cierelabs/json_spirit/issues/12","labels_url":"https://api.github.com/repos/cierelabs/json_spirit/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/cierelabs/json_spirit/issues/12/comments","events_url":"https://api.github.com/repos/cierelabs/json_spirit/issues/12/events","html_url":"https://github.com/cierelabs/json_spirit/issues/12","id":98959596,"number":12,"title":"Compiling error when c++11/14/17 mode is used","user":{"login":"niXman","id":518474,"avatar_url":"https://avatars.githubusercontent.com/u/518474?v=3","gravatar_id":"","url":"https://api.github.com/users/niXman","html_url":"https://github.com/niXman","followers_url":"https://api.github.com/users/niXman/followers","following_url":"https://api.github.com/users/niXman/following{/other_user}","gists_url":"https://api.github.com/users/niXman/gists{/gist_id}","starred_url":"https://api.github.com/users/niXman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/niXman/subscriptions","organizations_url":"https://api.github.com/users/niXman/orgs","repos_url":"https://api.github.com/users/niXman/repos","events_url":"https://api.github.com/users/niXman/events{/privacy}","received_events_url":"https://api.github.com/users/niXman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-04T12:46:17Z","updated_at":"2015-08-04T12:46:17Z","closed_at":null,"body":"Hi,\r\n\r\nThis simple example demonstrates the problem:\r\n```cpp\r\n#include \"json/value.hpp\"\r\nint main() {}\r\n```\r\nCompiled as `g++ -I. libs/json/src/io.cpp libs/json/src/value.cpp main.cpp -omain`, error is:\r\n`In file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:79,\r\n                 from /usr/include/boost/spirit/home/phoenix/function/function.hpp:11,\r\n                 from /usr/include/boost/spirit/home/phoenix/function.hpp:11,\r\n                 from /usr/include/boost/spirit/include/phoenix_function.hpp:13,\r\n                 from /usr/include/boost/spirit/home/support/terminal.hpp:17,\r\n                 from /usr/include/boost/spirit/home/support/common_terminals.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/detail/construct.hpp:17,\r\n                 from /usr/include/boost/spirit/home/qi/detail/assign_to.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp: In instantiation of ‘struct boost::phoenix::detail::function_eval<2>::result<boost::phoenix::basic_environment<boost::fusion::vector1<unsigned int&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>, boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0> >’:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/composite_eval.hpp:89:17:   required from ‘struct boost::phoenix::detail::composite_eval<3>::result<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >, boost::phoenix::basic_environment<boost::fusion::vector1<unsigned int&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/composite.hpp:61:13:   required from ‘struct boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >::result<boost::phoenix::basic_environment<boost::fusion::vector1<unsigned int&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:56:59:   required from ‘struct boost::phoenix::eval_result<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >, boost::phoenix::basic_environment<boost::fusion::vector1<unsigned int&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:37:12:   required from ‘struct boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >::result<boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >(boost::fusion::vector1<unsigned int&>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, bool&)>’\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5:   required by substitution of ‘template<class T0, class T1, class T2> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&) const [with T0 = boost::fusion::vector1<unsigned int&>; T1 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; T2 = bool]’\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39:   [ skipping 13 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\r\n/usr/include/boost/function/function_template.hpp:1124:5:   required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >, mpl_::bool_<false> >; R = bool; T0 = boost::spirit::basic_istream_iterator<char>&; T1 = const boost::spirit::basic_istream_iterator<char>&; T2 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(boost::spirit::basic_istream_iterator<char>&, const boost::spirit::basic_istream_iterator<char>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:19:   required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; mpl_::true_ = mpl_::bool_<true>]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:19:   required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type]’\r\n./ciere/json/parser/grammar_def.hpp:91:17:   required from ‘ciere::json::parser::detail::unicode_string<Iterator>::unicode_string() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/parser/grammar_def.hpp:122:35:   required from ‘ciere::json::parser::grammar<Iterator>::grammar() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/detail/io_impl.hpp:173:17:   required from here\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:116:13: error: wrong number of template arguments (2, should be 1)\r\n             function_apply;\r\n             ^\r\nIn file included from libs/json/src/io.cpp:10:0:\r\n./ciere/json/parser/grammar_def.hpp:38:17: error: provided for ‘template<class Sig> struct ciere::json::parser::detail::push_utf8::result’\r\n          struct result { typedef void type; };\r\n                 ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:79,\r\n                 from /usr/include/boost/spirit/home/phoenix/function/function.hpp:11,\r\n                 from /usr/include/boost/spirit/home/phoenix/function.hpp:11,\r\n                 from /usr/include/boost/spirit/include/phoenix_function.hpp:13,\r\n                 from /usr/include/boost/spirit/home/support/terminal.hpp:17,\r\n                 from /usr/include/boost/spirit/home/support/common_terminals.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/detail/construct.hpp:17,\r\n                 from /usr/include/boost/spirit/home/qi/detail/assign_to.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:126:13: error: wrong number of template arguments (2, should be 1)\r\n             type;\r\n             ^\r\nIn file included from libs/json/src/io.cpp:10:0:\r\n./ciere/json/parser/grammar_def.hpp:38:17: error: provided for ‘template<class Sig> struct ciere::json::parser::detail::push_utf8::result’\r\n          struct result { typedef void type; };\r\n                 ^\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const boost::phoenix::actor<Eval>&, Attribute&, Context&) [with Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >; Attribute = unsigned int; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Component = boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >]’:\r\n/usr/include/boost/spirit/home/qi/action/action.hpp:69:72:   required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = boost::spirit::basic_istream_iterator<char>; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Attribute = const boost::spirit::unused_type; Subject = boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >; Action = boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >]’\r\n/usr/include/boost/spirit/home/qi/detail/alternative_function.hpp:199:23:   required from ‘bool boost::spirit::qi::detail::alternative_function<Iterator, Context, Skipper, const boost::spirit::unused_type>::operator()(const Component&) [with Component = boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >; Iterator = boost::spirit::basic_istream_iterator<char>; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type]’\r\n/usr/include/boost/fusion/algorithm/query/detail/any.hpp:37:19:   required from ‘bool boost::fusion::detail::linear_any(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >; Last = boost::fusion::cons_iterator<const boost::fusion::nil_>; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>; mpl_::false_ = mpl_::bool_<false>]’\r\n/usr/include/boost/fusion/algorithm/query/detail/any.hpp:55:63:   required from ‘bool boost::fusion::detail::any(const Sequence&, F, Tag) [with Sequence = boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> >; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>; Tag = boost::fusion::forward_traversal_tag]’\r\n/usr/include/boost/fusion/algorithm/query/any.hpp:30:82:   required from ‘bool boost::fusion::any(const Sequence&, F) [with Sequence = boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> >; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>]’\r\n/usr/include/boost/spirit/home/qi/operator/alternative.hpp:79:43:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\r\n/usr/include/boost/function/function_template.hpp:1124:5:   required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >, mpl_::bool_<false> >; R = bool; T0 = boost::spirit::basic_istream_iterator<char>&; T1 = const boost::spirit::basic_istream_iterator<char>&; T2 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(boost::spirit::basic_istream_iterator<char>&, const boost::spirit::basic_istream_iterator<char>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:19:   required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; mpl_::true_ = mpl_::bool_<true>]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:19:   required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type]’\r\n./ciere/json/parser/grammar_def.hpp:91:17:   required from ‘ciere::json::parser::detail::unicode_string<Iterator>::unicode_string() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/parser/grammar_def.hpp:122:35:   required from ‘ciere::json::parser::grammar<Iterator>::grammar() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/detail/io_impl.hpp:173:17:   required from here\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: error: no match for call to ‘(const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >) (boost::mpl::if_<boost::fusion::traits::is_sequence<unsigned int>, unsigned int&, boost::fusion::vector1<unsigned int&> >::type&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, bool&)’\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/spirit/home/phoenix/core.hpp:13:0,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:65:12: note: candidates are:\r\n     struct actor : Eval\r\n            ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:107:9: note: boost::phoenix::actor<Eval>::nullary_result boost::phoenix::actor<Eval>::operator()() const [with Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >; boost::phoenix::actor<Eval>::nullary_result = boost::phoenix::detail::error_expecting_arguments]\r\n         operator()() const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:107:9: note:   candidate expects 0 arguments, 3 provided\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:124:9: note: template<class T0> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&)>::type boost::phoenix::actor<Eval>::operator()(T0&) const [with T0 = T0; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n         operator()(T0& _0) const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:124:9: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 1 argument, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/spirit/home/phoenix/core.hpp:13:0,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:142:9: note: template<class T0, class T1> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&) const [with T0 = T0; T1 = T1; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n         operator()(T0& _0, T1& _1) const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:142:9: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 2 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:62:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&) const [with T0 = T0; T1 = T1; T2 = T2; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   substitution of deduced template arguments resulted in errors seen above\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:67:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 4 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:72:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 5 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:77:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 6 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:82:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 7 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:87:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 8 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:92:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; T8 = T8; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 9 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:97:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; T8 = T8; T9 = T9; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 10 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:79,\r\n                 from /usr/include/boost/spirit/home/phoenix/function/function.hpp:11,\r\n                 from /usr/include/boost/spirit/home/phoenix/function.hpp:11,\r\n                 from /usr/include/boost/spirit/include/phoenix_function.hpp:13,\r\n                 from /usr/include/boost/spirit/home/support/terminal.hpp:17,\r\n                 from /usr/include/boost/spirit/home/support/common_terminals.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/detail/construct.hpp:17,\r\n                 from /usr/include/boost/spirit/home/qi/detail/assign_to.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp: In instantiation of ‘struct boost::phoenix::detail::function_eval<2>::result<boost::phoenix::basic_environment<boost::fusion::vector1<char&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>, boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0> >’:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/composite_eval.hpp:89:17:   required from ‘struct boost::phoenix::detail::composite_eval<3>::result<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >, boost::phoenix::basic_environment<boost::fusion::vector1<char&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/composite.hpp:61:13:   required from ‘struct boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >::result<boost::phoenix::basic_environment<boost::fusion::vector1<char&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:56:59:   required from ‘struct boost::phoenix::eval_result<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >, boost::phoenix::basic_environment<boost::fusion::vector1<char&>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, bool, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >’\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:37:12:   required from ‘struct boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >::result<boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >(boost::fusion::vector1<char&>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, bool&)>’\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5:   required by substitution of ‘template<class T0, class T1, class T2> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&) const [with T0 = boost::fusion::vector1<char&>; T1 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; T2 = bool]’\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\r\n/usr/include/boost/function/function_template.hpp:1124:5:   required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >, mpl_::bool_<false> >; R = bool; T0 = boost::spirit::basic_istream_iterator<char>&; T1 = const boost::spirit::basic_istream_iterator<char>&; T2 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(boost::spirit::basic_istream_iterator<char>&, const boost::spirit::basic_istream_iterator<char>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:19:   required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; mpl_::true_ = mpl_::bool_<true>]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:19:   required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type]’\r\n./ciere/json/parser/grammar_def.hpp:91:17:   required from ‘ciere::json::parser::detail::unicode_string<Iterator>::unicode_string() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/parser/grammar_def.hpp:122:35:   required from ‘ciere::json::parser::grammar<Iterator>::grammar() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/detail/io_impl.hpp:173:17:   required from here\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:116:13: error: wrong number of template arguments (2, should be 1)\r\n             function_apply;\r\n             ^\r\nIn file included from libs/json/src/io.cpp:10:0:\r\n./ciere/json/parser/grammar_def.hpp:52:17: error: provided for ‘template<class Sig> struct ciere::json::parser::detail::push_esc::result’\r\n          struct result { typedef void type; };\r\n                 ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:79,\r\n                 from /usr/include/boost/spirit/home/phoenix/function/function.hpp:11,\r\n                 from /usr/include/boost/spirit/home/phoenix/function.hpp:11,\r\n                 from /usr/include/boost/spirit/include/phoenix_function.hpp:13,\r\n                 from /usr/include/boost/spirit/home/support/terminal.hpp:17,\r\n                 from /usr/include/boost/spirit/home/support/common_terminals.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/detail/construct.hpp:17,\r\n                 from /usr/include/boost/spirit/home/qi/detail/assign_to.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:16,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp:126:13: error: wrong number of template arguments (2, should be 1)\r\n             type;\r\n             ^\r\nIn file included from libs/json/src/io.cpp:10:0:\r\n./ciere/json/parser/grammar_def.hpp:52:17: error: provided for ‘template<class Sig> struct ciere::json::parser::detail::push_esc::result’\r\n          struct result { typedef void type; };\r\n                 ^\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const boost::phoenix::actor<Eval>&, Attribute&, Context&) [with Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >; Attribute = char; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Component = boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>]’:\r\n/usr/include/boost/spirit/home/qi/action/action.hpp:69:72:   required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = boost::spirit::basic_istream_iterator<char>; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Attribute = const boost::spirit::unused_type; Subject = boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>; Action = boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >]’\r\n/usr/include/boost/spirit/home/qi/detail/alternative_function.hpp:199:23:   required from ‘bool boost::spirit::qi::detail::alternative_function<Iterator, Context, Skipper, const boost::spirit::unused_type>::operator()(const Component&) [with Component = boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >; Iterator = boost::spirit::basic_istream_iterator<char>; Context = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type]’\r\n/usr/include/boost/fusion/algorithm/query/detail/any.hpp:37:19:   required from ‘bool boost::fusion::detail::linear_any(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> >; Last = boost::fusion::cons_iterator<const boost::fusion::nil_>; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>; mpl_::false_ = mpl_::bool_<false>]’\r\n/usr/include/boost/fusion/algorithm/query/detail/any.hpp:42:83:   required from ‘bool boost::fusion::detail::linear_any(const First&, const Last&, F&, mpl_::false_) [with First = boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >; Last = boost::fusion::cons_iterator<const boost::fusion::nil_>; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>; mpl_::false_ = mpl_::bool_<false>]’\r\n/usr/include/boost/fusion/algorithm/query/detail/any.hpp:55:63:   required from ‘bool boost::fusion::detail::any(const Sequence&, F, Tag) [with Sequence = boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> >; F = boost::spirit::qi::detail::alternative_function<boost::spirit::basic_istream_iterator<char>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >, boost::spirit::unused_type, const boost::spirit::unused_type>; Tag = boost::fusion::forward_traversal_tag]’\r\n/usr/include/boost/fusion/algorithm/query/any.hpp:30:82:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\r\n/usr/include/boost/function/function_template.hpp:1124:5:   required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::any_uint_parser<unsigned int, 16u, 4u, 4>, boost::fusion::nil_> > >, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > > >, boost::fusion::nil_> > >, mpl_::bool_<false> >; R = bool; T0 = boost::spirit::basic_istream_iterator<char>&; T1 = const boost::spirit::basic_istream_iterator<char>&; T2 = boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(boost::spirit::basic_istream_iterator<char>&, const boost::spirit::basic_istream_iterator<char>&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:19:   required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; mpl_::true_ = mpl_::bool_<true>]’\r\n/usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:19:   required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l>, boost::spirit::qi::uint_parser<unsigned int, 16u, 4u, 4>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_utf8>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code<boost::spirit::tag::char_, boost::spirit::char_encoding::standard>, boost::fusion::vector1<const char (&)[9]> > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >&>, 0l> >, 2l>&>, 2l>; Iterator = boost::spirit::basic_istream_iterator<char>; T1 = void(std::basic_string<char>&); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type]’\r\n./ciere/json/parser/grammar_def.hpp:91:17:   required from ‘ciere::json::parser::detail::unicode_string<Iterator>::unicode_string() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/parser/grammar_def.hpp:122:35:   required from ‘ciere::json::parser::grammar<Iterator>::grammar() [with Iterator = boost::spirit::basic_istream_iterator<char>]’\r\n./ciere/json/detail/io_impl.hpp:173:17:   required from here\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: error: no match for call to ‘(const boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > >) (boost::spirit::traits::pass_attribute<boost::spirit::qi::char_set<boost::spirit::char_encoding::standard, false, false>, char, void>::type&, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type&, boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_> >, boost::fusion::vector0<> >&, bool&)’\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/spirit/home/phoenix/core.hpp:13:0,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:65:12: note: candidates are:\r\n     struct actor : Eval\r\n            ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:107:9: note: boost::phoenix::actor<Eval>::nullary_result boost::phoenix::actor<Eval>::operator()() const [with Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >; boost::phoenix::actor<Eval>::nullary_result = boost::phoenix::detail::error_expecting_arguments]\r\n         operator()() const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:107:9: note:   candidate expects 0 arguments, 3 provided\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:124:9: note: template<class T0> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&)>::type boost::phoenix::actor<Eval>::operator()(T0&) const [with T0 = T0; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n         operator()(T0& _0) const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:124:9: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 1 argument, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/spirit/home/phoenix/core.hpp:13:0,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:142:9: note: template<class T0, class T1> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&) const [with T0 = T0; T1 = T1; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n         operator()(T0& _0, T1& _1) const\r\n         ^\r\n/usr/include/boost/spirit/home/phoenix/core/actor.hpp:142:9: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 2 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:62:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&) const [with T0 = T0; T1 = T1; T2 = T2; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   substitution of deduced template arguments resulted in errors seen above\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:67:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 4 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:72:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 5 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:77:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 6 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:82:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 7 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:87:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 8 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:92:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; T8 = T8; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 9 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\nIn file included from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:97:0,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:19,\r\n                 from /usr/include/boost/spirit/home/phoenix/core/actor.hpp:156,\r\n                 from /usr/include/boost/spirit/home/phoenix/core.hpp:13,\r\n                 from /usr/include/boost/spirit/include/phoenix_core.hpp:14,\r\n                 from /usr/include/boost/spirit/home/support/make_component.hpp:15,\r\n                 from /usr/include/boost/spirit/home/support/meta_compiler.hpp:20,\r\n                 from /usr/include/boost/spirit/home/qi/domain.hpp:15,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_parser.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi/char/char_class.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi_char_class.hpp:16,\r\n                 from ./ciere/json/parser/grammar.hpp:15,\r\n                 from ./ciere/json/parser/grammar_def.hpp:14,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> typename boost::phoenix::actor<Eval>::result<boost::phoenix::actor<Eval>(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&)>::type boost::phoenix::actor<Eval>::operator()(T0&, T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&) const [with T0 = T0; T1 = T1; T2 = T2; T3 = T3; T4 = T4; T5 = T5; T6 = T6; T7 = T7; T8 = T8; T9 = T9; Eval = boost::phoenix::composite<boost::phoenix::detail::function_eval<2>, boost::fusion::vector<boost::phoenix::value<ciere::json::parser::detail::push_esc>, boost::spirit::attribute<1>, boost::spirit::argument<0>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >]\r\n     operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _)) const\r\n     ^\r\n/usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp:54:5: note:   template argument deduction/substitution failed:\r\nIn file included from /usr/include/boost/spirit/home/qi/action/action.hpp:21:0,\r\n                 from /usr/include/boost/spirit/home/qi/action.hpp:14,\r\n                 from /usr/include/boost/spirit/home/qi.hpp:14,\r\n                 from /usr/include/boost/spirit/include/qi.hpp:16,\r\n                 from ./ciere/json/parser/grammar_def.hpp:19,\r\n                 from libs/json/src/io.cpp:10:\r\n/usr/include/boost/spirit/home/support/action_dispatch.hpp:178:39: note:   candidate expects 10 arguments, 3 provided\r\n             f(attr_wrap, context, pass);\r\n                                       ^\r\n`\r\n\r\nGCC-4.9.2-x86_64 is used.\r\n\r\nIdeas?\r\n"}}