Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

Author

anonymous

over 6 years ago

Language

C++

Compiler

gcc HEAD 9.0.0 20181031 (experimental)

Options
Warnings
Boost 1.68.0
C++17(GNU)
no pedantic

Author

anonymous

over 6 years ago

$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.68.0/gcc-head/include -std=gnu++17
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/string_traits.hpp:16,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/nonterminal/expand_arg.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/context.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/domain.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/container.hpp: In function 'boost::spirit::unused_type boost::spirit::traits::optional_value(boost::spirit::unused_type)':
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/container.hpp:268:16: warning: implicitly-declared 'constexpr boost::spirit::unused_type::unused_type(const boost::spirit::unused_type&)' is deprecated [-Wdeprecated-copy]
  268 |         return unused;
      |                ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/modify.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/make_component.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/unused.hpp:64:9: note: because 'boost::spirit::unused_type' has user-provided 'boost::spirit::unused_type& boost::spirit::unused_type::operator=(const boost::spirit::unused_type&)'
   64 |         operator=(unused_type const&)
      |         ^~~~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/string_traits.hpp:16,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/nonterminal/expand_arg.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/context.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/domain.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/container.hpp: In function 'boost::spirit::unused_type boost::spirit::traits::deref(const boost::spirit::unused_type*)':
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/container.hpp:485:16: warning: implicitly-declared 'constexpr boost::spirit::unused_type::unused_type(const boost::spirit::unused_type&)' is deprecated [-Wdeprecated-copy]
  485 |         return unused;
      |                ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/modify.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/make_component.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/unused.hpp:64:9: note: because 'boost::spirit::unused_type' has user-provided 'boost::spirit::unused_type& boost::spirit::unused_type::operator=(const boost::spirit::unused_type&)'
   64 |         operator=(unused_type const&)
      |         ^~~~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:16,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/detail/attributes.hpp: In static member function 'static boost::spirit::unused_type boost::spirit::qi::transform_attribute<boost::spirit::unused_type, boost::spirit::unused_type>::pre(boost::spirit::unused_type)':
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/detail/attributes.hpp:112:54: warning: implicitly-declared 'constexpr boost::spirit::unused_type::unused_type(const boost::spirit::unused_type&)' is deprecated [-Wdeprecated-copy]
  112 |         static unused_type pre(unused_type) { return unused; }
      |                                                      ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/modify.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/make_component.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/unused.hpp:64:9: note: because 'boost::spirit::unused_type' has user-provided 'boost::spirit::unused_type& boost::spirit::unused_type::operator=(const boost::spirit::unused_type&)'
   64 |         operator=(unused_type const&)
      |         ^~~~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp:21,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric/real.hpp:21,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric.hpp:17,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:22,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/detail/pow10.hpp: In static member function 'static boost::spirit::unused_type boost::spirit::traits::pow10_helper<boost::spirit::unused_type>::call(boost::spirit::unused_type)':
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/detail/pow10.hpp:44:20: warning: implicitly-declared 'constexpr boost::spirit::unused_type::unused_type(const boost::spirit::unused_type&)' is deprecated [-Wdeprecated-copy]
   44 |             return unused;
      |                    ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/modify.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/make_component.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/unused.hpp:64:9: note: because 'boost::spirit::unused_type' has user-provided 'boost::spirit::unused_type& boost::spirit::unused_type::operator=(const boost::spirit::unused_type&)'
   64 |         operator=(unused_type const&)
      |         ^~~~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric/real.hpp:21,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric.hpp:17,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:22,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp: In function 'boost::spirit::unused_type boost::spirit::traits::negate(bool, boost::spirit::unused_type)':
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp:150:16: warning: implicitly-declared 'constexpr boost::spirit::unused_type::unused_type(const boost::spirit::unused_type&)' is deprecated [-Wdeprecated-copy]
  150 |         return n;
      |                ^
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/modify.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/make_component.hpp:18,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:20,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/unused.hpp:64:9: note: because 'boost::spirit::unused_type' has user-provided 'boost::spirit::unused_type& boost::spirit::unused_type::operator=(const boost::spirit::unused_type&)'
   64 |         operator=(unused_type const&)
      |         ^~~~~~~~
prog.cc: At global scope:
prog.cc:108:17: error: field 'body' has incomplete type 'ast_msg_body_t'
  108 |  ast_msg_body_t body;
      |                 ^~~~
prog.cc:100:8: note: forward declaration of 'struct ast_msg_body_t'
  100 | struct ast_msg_body_t;
      |        ^~~~~~~~~~~~~~
prog.cc:112:2: error: 'type_t' does not name a type; did you mean 'wctype_t'?
  112 |  type_t type;
      |  ^~~~~~
      |  wctype_t
prog.cc:175:17: error: field 'body' has incomplete type 'ast_msg_body_t'
  175 |  ast_msg_body_t body;
      |                 ^~~~
prog.cc:100:8: note: forward declaration of 'struct ast_msg_body_t'
  100 | struct ast_msg_body_t;
      |        ^~~~~~~~~~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/typeof.hpp:216,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/proto/detail/decltype.hpp:32,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/proto/context/default.hpp:31,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/proto/context.hpp:13,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/proto/proto.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/meta_compiler.hpp:19,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/meta_compiler.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/action.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:14,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/decltype.hpp:17:74: error: template argument 1 is invalid
   17 | #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
      |                                                                          ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:92:15: note: in expansion of macro 'BOOST_TYPEOF'
   92 |       typedef BOOST_TYPEOF(                                                     \
      |               ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_FUSION_ATTRIBUTE_TYPEOF'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_1'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/if.hpp:24:37: note: in expansion of macro 'BOOST_PP_IIF'
   24 | #    define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
      |                                     ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:174:9: note: in expansion of macro 'BOOST_PP_IF'
  174 |         BOOST_PP_IF(DEDUCE_TYPE,                                                \
      |         ^~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:42:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C_BASE'
   42 |         BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/elem.hpp:28:47: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C'
   28 | #    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
      |                                               ^~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:137:5: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
  137 |     BOOST_PP_TUPLE_ELEM(4,0,DATA)(                                              \
      |     ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:66: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                  ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:80:49: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_I'
   80 | #    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_IM'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:77: note: in expansion of macro 'BOOST_PP_TUPLE_REM_5'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:25:37: note: in expansion of macro 'BOOST_PP_FOR_4_C'
   25 | # define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p(5, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_4'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:58:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC'
   58 |  BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:52:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I'
   52 | #    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:24:37: note: in expansion of macro 'BOOST_PP_FOR_3_C'
   24 | # define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_3'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:58:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC'
   58 |  BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:52:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I'
   52 | #    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:23:37: note: in expansion of macro 'BOOST_PP_FOR_2_C'
   23 | # define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_2'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:58:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC'
   58 |  BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:52:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I'
   52 | #    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:96:78: note: in expansion of macro 'BOOST_PP_FOR_1'
   96 | #    define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
      |                                                                              ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:90:60: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK'
   90 | #    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq)
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:68:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE'
   68 |         BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:234:1: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT'
  234 | BOOST_FUSION_ADAPT_STRUCT(ast_group_t, label, name, number, body)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:236:46: error: 'const struct ast_oneof_field_t' has no member named 'type'
  236 | BOOST_FUSION_ADAPT_STRUCT(ast_oneof_field_t, type, name, number, opts)
      |                                              ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/decltype.hpp:17:69: note: in definition of macro 'BOOST_TYPEOF'
   17 | #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
      |                                                                     ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:93:24: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
   93 |           PREFIX() obj.BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPLE_SIZE, 0, ATTRIBUTE)) \
      |                        ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_FUSION_ATTRIBUTE_TYPEOF'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:42:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C_BASE'
   42 |         BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:50:3: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
   50 |   BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)
      |   ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:48:13: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR'
   48 |             BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE),                   \
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/elem.hpp:28:47: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C'
   28 | #    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
      |                                               ^~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:66: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                  ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:84: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                                    ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:80:49: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_I'
   80 | #    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_IM'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:77: note: in expansion of macro 'BOOST_PP_TUPLE_REM_5'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:96:78: note: in expansion of macro 'BOOST_PP_FOR_1'
   96 | #    define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
      |                                                                              ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:90:60: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK'
   90 | #    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq)
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:260:21: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
  260 |                     BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ))                          \
      |                     ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:68:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE'
   68 |         BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:62:9: note: in expansion of macro 'BOOST_PP_SEQ_PUSH_FRONT'
   62 |         BOOST_PP_SEQ_PUSH_FRONT(                                                \
      |         ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_0'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:56:9: note: in expansion of macro 'BOOST_PP_IIF'
   56 |         BOOST_PP_IIF(BOOST_FUSION_PP_IS_SEQ(elem),                              \
      |         ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:26:41: note: in expansion of macro 'BOOST_PP_EXPR_IIF_1'
   26 | # define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr)
      |                                         ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:20:42: note: in expansion of macro 'BOOST_PP_EXPR_IIF_I'
   20 | #    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr)
      |                                          ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:58:13: note: in expansion of macro 'BOOST_PP_EXPR_IIF'
   58 |             BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY(elem)),          \
      |             ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_1'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:41:5: note: in expansion of macro 'BOOST_PP_IIF'
   41 |     BOOST_PP_IIF(BOOST_MPL_PP_TOKEN_EQUAL(auto, BOOST_PP_EXPAND(X)),            \
      |     ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:59:17: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR'
   59 |                 BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(auto, elem)))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:61: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER_OP'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                             ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:76: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                                            ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:78:47: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_I'
   78 | #    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_IM'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:73: note: in expansion of macro 'BOOST_PP_TUPLE_REM_4'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                                                         ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_FOR_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:29:53: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK'
   29 | #    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:63:13: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH'
   63 |             BOOST_PP_SEQ_FOR_EACH(                                              \
      |             ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:73:13: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER'
   73 |             BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(                        \
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:74:15: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   74 |               BOOST_PP_SEQ_TAIL(BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))),        \
      |               ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ_5'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ_O_1'
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/to_seq.hpp:22:43: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ'
   22 | #    define BOOST_PP_VARIADIC_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ((__VA_ARGS__))
      |                                           ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:74:33: note: in expansion of macro 'BOOST_PP_VARIADIC_TO_SEQ'
   74 |               BOOST_PP_SEQ_TAIL(BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))),        \
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:236:1: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT'
  236 | BOOST_FUSION_ADAPT_STRUCT(ast_oneof_field_t, type, name, number, opts)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:236:46: error: 'const struct ast_oneof_field_t' has no member named 'type'
  236 | BOOST_FUSION_ADAPT_STRUCT(ast_oneof_field_t, type, name, number, opts)
      |                                              ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/decltype.hpp:17:69: note: in definition of macro 'BOOST_TYPEOF'
   17 | #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
      |                                                                     ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:93:24: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
   93 |           PREFIX() obj.BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPLE_SIZE, 0, ATTRIBUTE)) \
      |                        ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_FUSION_ATTRIBUTE_TYPEOF'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:42:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C_BASE'
   42 |         BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:50:3: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
   50 |   BOOST_PP_TUPLE_ELEM(2, 1, ATTRIBUTE)
      |   ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:48:13: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR'
   48 |             BOOST_FUSION_ADAPT_STRUCT_WRAPPEDATTR(ATTRIBUTE),                   \
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/elem.hpp:28:47: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C'
   28 | #    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
      |                                               ^~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:66: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                  ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:84: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                                    ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:80:49: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_I'
   80 | #    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_IM'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:77: note: in expansion of macro 'BOOST_PP_TUPLE_REM_5'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:96:78: note: in expansion of macro 'BOOST_PP_FOR_1'
   96 | #    define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
      |                                                                              ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:90:60: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK'
   90 | #    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq)
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:260:21: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
  260 |                     BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ))                          \
      |                     ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:68:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE'
   68 |         BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:62:9: note: in expansion of macro 'BOOST_PP_SEQ_PUSH_FRONT'
   62 |         BOOST_PP_SEQ_PUSH_FRONT(                                                \
      |         ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_0'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:56:9: note: in expansion of macro 'BOOST_PP_IIF'
   56 |         BOOST_PP_IIF(BOOST_FUSION_PP_IS_SEQ(elem),                              \
      |         ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:26:41: note: in expansion of macro 'BOOST_PP_EXPR_IIF_1'
   26 | # define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr)
      |                                         ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:20:42: note: in expansion of macro 'BOOST_PP_EXPR_IIF_I'
   20 | #    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr)
      |                                          ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:58:13: note: in expansion of macro 'BOOST_PP_EXPR_IIF'
   58 |             BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY(elem)),          \
      |             ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_1'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:41:5: note: in expansion of macro 'BOOST_PP_IIF'
   41 |     BOOST_PP_IIF(BOOST_MPL_PP_TOKEN_EQUAL(auto, BOOST_PP_EXPAND(X)),            \
      |     ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:59:17: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR'
   59 |                 BOOST_FUSION_ADAPT_STRUCT_WRAP_ATTR(auto, elem)))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:61: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER_OP'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                             ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:76: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                                            ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:78:47: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_I'
   78 | #    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_IM'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:73: note: in expansion of macro 'BOOST_PP_TUPLE_REM_4'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                                                         ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_FOR_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:29:53: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK'
   29 | #    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp:63:13: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH'
   63 |             BOOST_PP_SEQ_FOR_EACH(                                              \
      |             ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:73:13: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER'
   73 |             BOOST_FUSION_ADAPT_STRUCT_ATTRIBUTES_FILLER(                        \
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:74:15: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   74 |               BOOST_PP_SEQ_TAIL(BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))),        \
      |               ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ_5'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ_O_1'
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/to_seq.hpp:22:43: note: in expansion of macro 'BOOST_PP_TUPLE_TO_SEQ'
   22 | #    define BOOST_PP_VARIADIC_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ((__VA_ARGS__))
      |                                           ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:74:33: note: in expansion of macro 'BOOST_PP_VARIADIC_TO_SEQ'
   74 |               BOOST_PP_SEQ_TAIL(BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))),        \
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:236:1: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT'
  236 | BOOST_FUSION_ADAPT_STRUCT(ast_oneof_field_t, type, name, number, opts)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/decltype.hpp:17:74: error: template argument 1 is invalid
   17 | #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
      |                                                                          ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:92:15: note: in expansion of macro 'BOOST_TYPEOF'
   92 |       typedef BOOST_TYPEOF(                                                     \
      |               ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_FUSION_ATTRIBUTE_TYPEOF'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_1'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/if.hpp:24:37: note: in expansion of macro 'BOOST_PP_IIF'
   24 | #    define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
      |                                     ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:174:9: note: in expansion of macro 'BOOST_PP_IF'
  174 |         BOOST_PP_IF(DEDUCE_TYPE,                                                \
      |         ^~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:42:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C_BASE'
   42 |         BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/elem.hpp:28:47: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C'
   28 | #    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
      |                                               ^~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:137:5: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
  137 |     BOOST_PP_TUPLE_ELEM(4,0,DATA)(                                              \
      |     ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:66: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                  ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:80:49: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_I'
   80 | #    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_IM'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:77: note: in expansion of macro 'BOOST_PP_TUPLE_REM_5'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:96:78: note: in expansion of macro 'BOOST_PP_FOR_1'
   96 | #    define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
      |                                                                              ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:90:60: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK'
   90 | #    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq)
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:68:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE'
   68 |         BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:236:1: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT'
  236 | BOOST_FUSION_ADAPT_STRUCT(ast_oneof_field_t, type, name, number, opts)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/typeof/decltype.hpp:17:74: error: template argument 1 is invalid
   17 | #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
      |                                                                          ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:92:15: note: in expansion of macro 'BOOST_TYPEOF'
   92 |       typedef BOOST_TYPEOF(                                                     \
      |               ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_FUSION_ATTRIBUTE_TYPEOF'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:25:39: note: in expansion of macro 'BOOST_PP_IIF_1'
   25 | #    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
      |                                       ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:18:37: note: in expansion of macro 'BOOST_PP_IIF_I'
   18 | #    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
      |                                     ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/if.hpp:24:37: note: in expansion of macro 'BOOST_PP_IIF'
   24 | #    define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
      |                                     ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:174:9: note: in expansion of macro 'BOOST_PP_IF'
  174 |         BOOST_PP_IF(DEDUCE_TYPE,                                                \
      |         ^~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:42:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C_BASE'
   42 |         BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/variadic/elem.hpp:28:47: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_C'
   28 | #    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
      |                                               ^~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/detail/adapt_base.hpp:137:5: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
  137 |     BOOST_PP_TUPLE_ELEM(4,0,DATA)(                                              \
      |     ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:85:66: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL'
   85 | # define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
      |                                                                  ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:80:49: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_I'
   80 | #    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M_IM'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:79:77: note: in expansion of macro 'BOOST_PP_TUPLE_REM_5'
   79 | #    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x)
      |                                                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:23:37: note: in expansion of macro 'BOOST_PP_FOR_2_C'
   23 | # define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_2'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:58:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC'
   58 |  BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:52:45: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O_I'
   52 | #    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:96:78: note: in expansion of macro 'BOOST_PP_FOR_1'
   96 | #    define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
      |                                                                              ^~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each_i.hpp:90:60: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK'
   90 | #    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq)
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_I_R'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/fusion/adapted/struct/adapt_struct.hpp:68:9: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT_BASE'
   68 |         BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:259:1: note: in expansion of macro 'BOOST_FUSION_ADAPT_STRUCT'
  259 | BOOST_FUSION_ADAPT_STRUCT(ast_msg_t, name, body)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:272:40: error: there are no arguments to 'proto_t' that depend on a template parameter, so a declaration of 'proto_t' must be available [-fpermissive]
  272 | struct proto_grammar : qi::grammar<It, proto_t()> {
      |                                        ^~~~~~~
prog.cc:272:40: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
prog.cc:272:49: error: type/value mismatch at argument 2 in template parameter list for 'template<class Iterator, class T1, class T2, class T3, class T4> struct boost::spirit::qi::grammar'
  272 | struct proto_grammar : qi::grammar<It, proto_t()> {
      |                                                 ^
prog.cc:272:49: note:   expected a type, got 'proto_t()'
prog.cc:595:15: error: there are no arguments to 'msg_type_t' that depend on a template parameter, so a declaration of 'msg_type_t' must be available [-fpermissive]
  595 |  qi::rule<It, msg_type_t()> msg_type;
      |               ^~~~~~~~~~
prog.cc:595:27: error: type/value mismatch at argument 2 in template parameter list for 'template<class Iterator, class T1, class T2, class T3, class T4> struct boost::spirit::qi::rule'
  595 |  qi::rule<It, msg_type_t()> msg_type;
      |                           ^
prog.cc:595:27: note:   expected a type, got 'msg_type_t()'
prog.cc:596:15: error: there are no arguments to 'enum_type_t' that depend on a template parameter, so a declaration of 'enum_type_t' must be available [-fpermissive]
  596 |  qi::rule<It, enum_type_t()> enum_type;
      |               ^~~~~~~~~~~
prog.cc:596:28: error: type/value mismatch at argument 2 in template parameter list for 'template<class Iterator, class T1, class T2, class T3, class T4> struct boost::spirit::qi::rule'
  596 |  qi::rule<It, enum_type_t()> enum_type;
      |                            ^
prog.cc:596:28: note:   expected a type, got 'enum_type_t()'
prog.cc: In constructor 'proto_grammar<It>::proto_grammar()':
prog.cc:284:27: warning: capture of variable 'boost::spirit::lexeme' with non-automatic storage duration
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                           ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/auto/auto.hpp:13,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/auto.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:69:11: note: 'const lexeme_type boost::spirit::lexeme' declared here
   69 |         ( lexeme, lexeme_type )
      |           ^~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:627:21: note: in definition of macro 'BOOST_SPIRIT_TERMINAL_NAME'
  627 |     type_name const name = {{}};                                                \
      |                     ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:646:9: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
  646 |         BOOST_PP_TUPLE_ELEM(2, 0, names),                                       \
      |         ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:61: note: in expansion of macro 'BOOST_SPIRIT_DEFINE_TERMINALS_NAME_A'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                             ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:76: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                                            ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:78:47: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_I'
   78 | #    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_IM'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:73: note: in expansion of macro 'BOOST_PP_TUPLE_REM_4'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                                                         ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:24:37: note: in expansion of macro 'BOOST_PP_FOR_3_C'
   24 | # define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_3'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:73:46: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   73 | # define BOOST_PP_SEQ_FOR_EACH_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq)
      |                                              ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_TAIL'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:57:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_DEC'
   57 |  BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:51:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I'
   51 | #    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:23:37: note: in expansion of macro 'BOOST_PP_FOR_2_C'
   23 | # define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_2'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:73:46: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   73 | # define BOOST_PP_SEQ_FOR_EACH_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq)
      |                                              ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_TAIL'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:57:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_DEC'
   57 |  BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:51:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I'
   51 | #    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_FOR_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:29:53: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK'
   29 | #    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:652:5: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH'
  652 |     BOOST_PP_SEQ_FOR_EACH(BOOST_SPIRIT_DEFINE_TERMINALS_NAME_A, _,              \
      |     ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:22:32: note: in expansion of macro 'BOOST_PP_CAT_I'
   22 | #    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
      |                                ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:653:9: note: in expansion of macro 'BOOST_PP_CAT'
  653 |         BOOST_PP_CAT(BOOST_SPIRIT_TERMINAL_X seq, 0))                           \
      |         ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:618:48: note: in expansion of macro 'BOOST_SPIRIT_TERMINAL_X'
  618 | #define BOOST_SPIRIT_TERMINAL_Y(x, y) ((x, y)) BOOST_SPIRIT_TERMINAL_X
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:66:5: note: in expansion of macro 'BOOST_SPIRIT_DEFINE_TERMINALS_NAME'
   66 |     BOOST_SPIRIT_DEFINE_TERMINALS_NAME(
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:284:36: error: capture of non-variable 'proto_grammar<It>::proto_grammar'
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                                    ^~~~~~~~~~~~~
prog.cc:272:51: note: 'struct proto_grammar<It> proto_grammar<It>::proto_grammar' declared here
  272 | struct proto_grammar : qi::grammar<It, proto_t()> {
      |                                                   ^
prog.cc:284:49: error: expected ',' before '<' token
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                                                 ^
      |                                                 ,
prog.cc:284:49: error: expected identifier before '<' token
prog.cc:284:58: error: expected ']' before ',' token
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                                                          ^
      |                                                          ]
prog.cc: In lambda function:
prog.cc:284:58: error: expected '{' before ',' token
prog.cc: In constructor 'proto_grammar<It>::proto_grammar()':
prog.cc:284:87: error: qualified-id in declaration before ',' token
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                                                                                       ^
prog.cc:284:111: error: qualified-id in declaration before ']' token
  284 |   const auto init_id_ = [&lexeme, &proto_grammar<It>::let, &proto_grammar<It>::dec_dig, &proto_grammar<It>::us](char_rule_type& x) {
      |                                                                                                               ^
prog.cc:288:29: warning: capture of variable 'boost::spirit::lexeme' with non-automatic storage duration
  288 |   const auto init_type_ = [&lexeme, &proto_grammar<It>::dot, &proto_grammar<It>::id](string_rule_type& name, string_rule_type& x) {
      |                             ^~~~~~
In file included from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/auto/auto.hpp:13,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi/auto.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/qi.hpp:15,
                 from /opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/include/qi.hpp:16,
                 from prog.cc:9:
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:69:11: note: 'const lexeme_type boost::spirit::lexeme' declared here
   69 |         ( lexeme, lexeme_type )
      |           ^~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:627:21: note: in definition of macro 'BOOST_SPIRIT_TERMINAL_NAME'
  627 |     type_name const name = {{}};                                                \
      |                     ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM_0'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:49: note: in expansion of macro 'BOOST_PP_VARIADIC_ELEM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:41:75: note: in expansion of macro 'BOOST_PP_REM'
   41 | #      define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
      |                                                                           ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/tuple/elem.hpp:43:53: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_2'
   43 | #    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM_O_3'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:646:9: note: in expansion of macro 'BOOST_PP_TUPLE_ELEM'
  646 |         BOOST_PP_TUPLE_ELEM(2, 0, names),                                       \
      |         ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:61: note: in expansion of macro 'BOOST_SPIRIT_DEFINE_TERMINALS_NAME_A'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                             ^~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:43:38: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_III'
   43 | #    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:45: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_II'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                             ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:41:66: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_0'
   41 | #        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
      |                                                                  ^~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/elem.hpp:22:39: note: in expansion of macro 'BOOST_PP_SEQ_ELEM_I'
   22 | #    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
      |                                       ^~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/seq.hpp:20:33: note: in expansion of macro 'BOOST_PP_SEQ_ELEM'
   20 | # define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
      |                                 ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:83:76: note: in expansion of macro 'BOOST_PP_SEQ_HEAD'
   83 | # define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
      |                                                                            ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:78:47: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_I'
   78 | #    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M_IM'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:77:73: note: in expansion of macro 'BOOST_PP_TUPLE_REM_4'
   77 | #    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
      |                                                                         ^~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_M'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:24:37: note: in expansion of macro 'BOOST_PP_FOR_3_C'
   24 | # define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_3'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:73:46: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   73 | # define BOOST_PP_SEQ_FOR_EACH_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq)
      |                                              ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_TAIL'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:57:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_DEC'
   57 |  BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:51:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I'
   51 | #    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:23:37: note: in expansion of macro 'BOOST_PP_FOR_2_C'
   23 | # define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_FOR_2'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:73:46: note: in expansion of macro 'BOOST_PP_SEQ_TAIL'
   73 | # define BOOST_PP_SEQ_FOR_EACH_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq)
      |                                              ^~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_TAIL'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:57:2: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I_DEC'
   57 |  BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, BOOST_PP_DEC(sz)) \
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:51:43: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O_I'
   51 | #    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/expr_iif.hpp:29:36: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_O'
   29 | # define BOOST_PP_EXPR_IIF_1(expr) expr
      |                                    ^~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/repetition/detail/for.hpp:22:37: note: in expansion of macro 'BOOST_PP_FOR_1_C'
   22 | # define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
      |                                     ^~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:29:34: note: in expansion of macro 'BOOST_PP_FOR_1'
   29 | #    define BOOST_PP_CAT_I(a, b) a ## b
      |                                  ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/control/iif.hpp:32:31: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC'
   32 | # define BOOST_PP_IIF_1(t, f) t
      |                               ^
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/seq/for_each.hpp:29:53: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK'
   29 | #    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:652:5: note: in expansion of macro 'BOOST_PP_SEQ_FOR_EACH'
  652 |     BOOST_PP_SEQ_FOR_EACH(BOOST_SPIRIT_DEFINE_TERMINALS_NAME_A, _,              \
      |     ^~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/preprocessor/cat.hpp:22:32: note: in expansion of macro 'BOOST_PP_CAT_I'
   22 | #    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
      |                                ^~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:653:9: note: in expansion of macro 'BOOST_PP_CAT'
  653 |         BOOST_PP_CAT(BOOST_SPIRIT_TERMINAL_X seq, 0))                           \
      |         ^~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/terminal.hpp:618:48: note: in expansion of macro 'BOOST_SPIRIT_TERMINAL_X'
  618 | #define BOOST_SPIRIT_TERMINAL_Y(x, y) ((x, y)) BOOST_SPIRIT_TERMINAL_X
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
/opt/wandbox/boost-1.68.0/gcc-head/include/boost/spirit/home/support/common_terminals.hpp:66:5: note: in expansion of macro 'BOOST_SPIRIT_DEFINE_TERMINALS_NAME'
   66 |     BOOST_SPIRIT_DEFINE_TERMINALS_NAME(
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:288:38: error: capture of non-variable 'proto_grammar<It>::proto_grammar'
  288 |   const auto init_type_ = [&lexeme, &proto_grammar<It>::dot, &proto_grammar<It>::id](string_rule_type& name, string_rule_type& x) {
      |                                      ^~~~~~~~~~~~~
prog.cc:272:51: note: 'struct proto_grammar<It> proto_grammar<It>::proto_grammar' declared here
  272 | struct proto_grammar : qi::grammar<It, proto_t()> {
      |                                                   ^
prog.cc:288:51: error: expected ',' before '<' token
  288 |   const auto init_type_ = [&lexeme, &proto_grammar<It>::dot, &proto_grammar<It>::id](string_rule_type& name, string_rule_type& x) {
      |                                                   ^
      |                                                   ,
prog.cc:288:51: error: expected identifier before '<' token
prog.cc:288:60: error: expected ']' before ',' token
  288 |   const auto init_type_ = [&lexeme, &proto_grammar<It>::dot, &proto_grammar<It>::id](string_rule_type& name, string_rule_type& x) {
      |                                                            ^
      |                                                            ]
prog.cc: In lambda function:
prog.cc:288:60: error: expected '{' before ',' token
prog.cc: In constructor 'proto_grammar<It>::proto_grammar()':
prog.cc:288:84: error: qualified-id in declaration before ']' token
  288 |   const auto init_type_ = [&lexeme, &proto_grammar<It>::dot, &proto_grammar<It>::id](string_rule_type& name, string_rule_type& x) {
      |                                                                                    ^
Exit Code:
1