cierelabs/json_spirit

libs/json/src/io.cpp compiling error if boost > 1.55

Closed this issue · 11 comments

Hi,

When I try to build this library I get the following errors if boost > 1.55

$ make
Scanning dependencies of target json
[ 10%] Building CXX object CMakeFiles/json.dir/libs/json/src/io.cpp.o
In file included from C:/msys64/mingw32/include/boost/preprocessor/repetition/enum.hpp:22:0,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/preprocessor.hpp:26,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/memory_util.hpp:27,
                 from C:/msys64/mingw32/include/boost/intrusive/pointer_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/allocator_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/detail/allocator_version_traits.hpp:21,
                 from C:/msys64/mingw32/include/boost/container/stable_vector.hpp:31,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:15,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: 'BOOST_PP_REPEAT_1_BOOST_VARIANT_LIMIT_TYPES' has not been declared
         BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: expected ')' before ',' token
         BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: expected identifier before '(' token
         BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: expected ')' before 'typename'
         BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: expected '>' before 'typename'
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:33:9: error: expected unqualified-id before ')' token
         BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
         ^
In file included from C:/msys64/mingw32/include/boost/spirit/include/support_extended_variant.hpp:16:0,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:19,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:106:24: error: 'boost::get' declared as an 'inline' variable
     get(boost::spirit::extended_variant<
                        ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:106:24: error: template declaration of 'const T& boost::get'
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:106:9: error: 'extended_variant' is not a member of 'boost::spirit'
     get(boost::spirit::extended_variant<
         ^
In file included from C:/msys64/mingw32/include/boost/preprocessor/punctuation/comma_if.hpp:20:0,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/preprocessor.hpp:23,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/memory_util.hpp:27,
                 from C:/msys64/mingw32/include/boost/intrusive/pointer_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/allocator_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/detail/allocator_version_traits.hpp:21,
                 from C:/msys64/mingw32/include/boost/container/stable_vector.hpp:31,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:15,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
         ^
In file included from C:/msys64/mingw32/include/boost/spirit/include/support_extended_variant.hpp:16:0,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:19,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:53: error: expected primary-expression before '>' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
                                                     ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:107:55: error: expected primary-expression before 'const'
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x)
                                                       ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:114:24: error: 'boost::get' declared as an 'inline' variable
     get(boost::spirit::extended_variant<
                        ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:114:24: error: template declaration of 'T& boost::get'
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:114:9: error: 'extended_variant' is not a member of 'boost::spirit'
     get(boost::spirit::extended_variant<
         ^
In file included from C:/msys64/mingw32/include/boost/preprocessor/punctuation/comma_if.hpp:20:0,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/preprocessor.hpp:23,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/memory_util.hpp:27,
                 from C:/msys64/mingw32/include/boost/intrusive/pointer_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/allocator_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/detail/allocator_version_traits.hpp:21,
                 from C:/msys64/mingw32/include/boost/container/stable_vector.hpp:31,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:15,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
         ^
In file included from C:/msys64/mingw32/include/boost/spirit/include/support_extended_variant.hpp:16:0,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:19,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:53: error: expected primary-expression before '>' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
                                                     ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:115:56: error: 'x' was not declared in this scope
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x)
                                                        ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:122:24: error: 'boost::get' declared as an 'inline' variable
     get(boost::spirit::extended_variant<
                        ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:122:24: error: template declaration of 'const T* boost::get'
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:122:9: error: 'extended_variant' is not a member of 'boost::spirit'
     get(boost::spirit::extended_variant<
         ^
In file included from C:/msys64/mingw32/include/boost/preprocessor/punctuation/comma_if.hpp:20:0,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/preprocessor.hpp:23,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/memory_util.hpp:27,
                 from C:/msys64/mingw32/include/boost/intrusive/pointer_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/allocator_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/detail/allocator_version_traits.hpp:21,
                 from C:/msys64/mingw32/include/boost/container/stable_vector.hpp:31,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:15,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
         ^
In file included from C:/msys64/mingw32/include/boost/spirit/include/support_extended_variant.hpp:16:0,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:19,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:53: error: expected primary-expression before '>' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
                                                     ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:123:55: error: expected primary-expression before 'const'
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x)
                                                       ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:130:24: error: 'boost::get' declared as an 'inline' variable
     get(boost::spirit::extended_variant<
                        ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:130:24: error: template declaration of 'T* boost::get'
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:130:9: error: 'extended_variant' is not a member of 'boost::spirit'
     get(boost::spirit::extended_variant<
         ^
In file included from C:/msys64/mingw32/include/boost/preprocessor/punctuation/comma_if.hpp:20:0,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/preprocessor.hpp:23,
                 from C:/msys64/mingw32/include/boost/intrusive/detail/memory_util.hpp:27,
                 from C:/msys64/mingw32/include/boost/intrusive/pointer_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/allocator_traits.hpp:27,
                 from C:/msys64/mingw32/include/boost/container/detail/allocator_version_traits.hpp:21,
                 from C:/msys64/mingw32/include/boost/container/stable_vector.hpp:31,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:15,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:9: error: expected primary-expression before ',' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
         ^
In file included from C:/msys64/mingw32/include/boost/spirit/include/support_extended_variant.hpp:16:0,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:19,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:53: error: expected primary-expression before '>' token
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
                                                     ^
C:/msys64/mingw32/include/boost/spirit/home/support/extended_variant.hpp:131:56: error: 'x' was not declared in this scope
         BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x)
                                                        ^
In file included from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:0:
C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:73:47: error: expected template-name before '<' token
       : public boost::spirit::extended_variant<
                                               ^
C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:73:47: error: expected '{' before '<' token
C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:73:47: error: expected unqualified-id before '<' token
In file included from C:/msys64/mingw32/include/c++/4.9.2/ctime:42:0,
                 from C:/msys64/mingw32/include/c++/4.9.2/bits/locale_facets_nonio.h:39,
                 from C:/msys64/mingw32/include/c++/4.9.2/locale:41,
                 from C:/msys64/mingw32/include/boost/lexical_cast.hpp:47,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/detail/value_impl.hpp:14,
                 from C:/msys64/home/nixman/json_spirit/ciere/json/value.hpp:370,
                 from C:/msys64/home/nixman/json_spirit/libs/json/src/io.cpp:9:
C:/msys64/mingw32/i686-w64-mingw32/include/time.h:15:32: error: expected '}' before end of line
 #pragma pack(push,_CRT_PACKING)
                                ^
C:/msys64/mingw32/i686-w64-mingw32/include/time.h:15:32: error: expected '}' before end of line
C:/msys64/mingw32/i686-w64-mingw32/include/time.h:15:32: error: expected declaration before end of line

This error occurs if boost-1.56,1.57,1.58 is used.

How can I fix it?

Thanks.

ping?

Hi! Is this problem only happening under mingw?

This appears to be a Boost bug; I'm a told a fix for the underlying issue is committed and will likely be in version 1.59. If you'd like to help test the beta version you can download from here: http://www.boost.org/users/history/version_1_59_0.html

Is this problem only happening under mingw?

No, also in Linux using GCC-4.9.2.

This appears to be a Boost bug; I'm a told a fix for the underlying issue is committed and will likely be in version 1.59.

Using boost-1.59-beta1 it build successfully.

How can I fix this bug for older versions?

ping?

We are not certain where exactly the bug was introduced or how it was fixed; perhaps one of the other contributors would know. 1.59 will be released soon so hopefully that will suffice for your project.

I tried Boost 1.55, 1.7 and 1.58 with the json_spirit tests. Everything builds and runs just fine. I'm using gcc 4.9. The problem must be something else. Apart from a couple of warnings, everything is fine here.

Update: we are all able to reproduce this issue now. It has to do with a bug in extended_variant, a bad #ifdef in c++11 mode. One workaround is to compile the tests without c++11 enabled; another is to use boost/spirit/home/support/extended_variant.hpp from the 1.59 release candidate.

Since this has been confirmed as a bug in Boost rather than json_spirit I'm closing this issue.