boost::spirit::x3[1.63.0] calc1.cpp compilation error using g++

Abhijit Maji <[email protected]> Sun, 15 Apr 2018 18:27:15 +0000
Newsgroups gmane.comp.parsers.spirit.general
Message-ID <BY2PR07MB232804F7E00F722FF46D5395ABB10@BY2PR07MB2328.namprd07.prod.outlook.com>
Hi,

I tried compiling (g++ -O3 -w -std=c++11 -I. -I/grid/common/pkgs/boost/v1.63.0/include calc1.cpp) [gcc version: 4.8.3]

https://www.boost.org/doc/libs/1_63_0/libs/spirit/example/x3/calc/calc1.cpp

and get tons of errors. Please see the log below.

Can you please help me figure out what is going wrong?

Thanks!

In file included from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/core/parser.hpp:18:0,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary/any_parser.hpp:11,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary.hpp:11,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3.hpp:14,
                 from calc1.cpp:20:
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:28:18: error: expected primary-expression before 'auto'
         decltype(auto) get(ID_ id) const
                  ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:28:18: error: expected ')' before 'auto'
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:28:9: error: expected unqualified-id before 'decltype'
         decltype(auto) get(ID_ id) const
         ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:61:21: error: expected primary-expression before 'auto'
     inline decltype(auto) get(Context const& context)
                     ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:61:21: error: expected ')' before 'auto'
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:61:12: error: expected unqualified-id before 'decltype'
     inline decltype(auto) get(Context const& context)
            ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp: In function 'auto boost::spirit::x3::make_unique_context(T&, const Next&)':
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:99:59: error: 'get' is not a member of 'boost::spirit::x3'
         return detail::make_unique_context<ID>(val, next, x3::get<ID>(next));
                                                           ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/context.hpp:99:69: error: expected primary-expression before '>' token
         return detail::make_unique_context<ID>(val, next, x3::get<ID>(next));
                                                                     ^
In file included from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary/any_parser.hpp:13:0,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary.hpp:11,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3.hpp:14,
                 from calc1.cpp:20:
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp: In constructor 'boost::spirit::x3::subcontext<T>::subcontext(const Context&)':
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp:46:26: error: 'get' is not a member of 'boost::spirit::x3'
           : context_type(x3::get<typename T::first_type>(context))
                          ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp:46:26: note: suggested alternative:
In file included from /grid/common/pkgsData/gcc-v4.8.3/Linux/RHEL5.0-2010-x86_64/include/c++/4.8.3/functional:55:0,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/fusion/support/detail/as_fusion_element.hpp:15,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/fusion/support/pair.hpp:15,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp:12,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary/any_parser.hpp:13,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary.hpp:11,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3.hpp:14,
                 from calc1.cpp:20:
/grid/common/pkgsData/gcc-v4.8.3/Linux/RHEL5.0-2010-x86_64/include/c++/4.8.3/tuple:771:5: note:   'std::get'
     get(tuple<_Elements...>&& __t) noexcept
     ^
In file included from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary/any_parser.hpp:13:0,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/auxiliary.hpp:11,
                 from /grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3.hpp:14,
                 from calc1.cpp:20:
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp:46:56: error: expected '(' before '>' token
           : context_type(x3::get<typename T::first_type>(context))
                                                        ^
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp: In constructor 'boost::spirit::x3::subcontext<T, Tail ...>::subcontext(const Context&)':
/grid/common/pkgs/boost/v1.63.0/include/boost/spirit/home/x3/support/subcontext.hpp:70:17: error: 'get' is not a member of 'boost::spirit::x3'
                 x3::get<typename T::first_type>(context)

more follows ...

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
Spirit-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spirit-general