Closed Scheirle closed 6 years ago
In file included from /home/travis/build/alacarte-maps/alacarte/src/server/eval/function_operation_node.cpp:27:
In file included from /home/travis/build/alacarte-maps/alacarte/include/server/parser/color_grammar.hpp:25:
/usr/include/boost/spirit/home/qi/string/tst_map.hpp:74:38: error: invalid use of incomplete type 'boost::spirit::qi::tst_pass_through'
return find(first, last, tst_pass_through());
^~~~~~~~~~~~~~~~~~
/usr/include/boost/spirit/home/qi/string/tst_map.hpp:20:12: note: forward declaration of 'boost::spirit::qi::tst_pass_through'
struct tst_pass_through; // declared in tst.hpp
^
[ 6%] Building CXX object CMakeFiles/alacarte-obj.dir/src/utils/applications.cpp.o
1 error generated.
make[2]: *** [CMakeFiles/server-obj.dir/src/server/eval/function_operation_node.cpp.o] Error 1
make[1]: *** [CMakeFiles/server-obj.dir/all] Error 2
strange stuff… how can this work in gcc but not in clang?
Bug in boost: https://svn.boost.org/trac10/ticket/9468
GCC is not as strict as clang and is therefore able to compile it, because we include boost/spirit/home/qi/string/tst.hpp via mapcss_def.hpp and therefore the type is fully know before we use it.
Now look at who reported and provided a fix for that bug years ago, our good alacarte friend @AMDmi3 :smile:
So it seems like the boost version we use on travis is still too old to contain that fix?
@Scheirle comparably nice workaround! :+1:
This reverts commit d0f092c2cd7cfcc96d50c90b2db3a26bc0e37fe4.
Let's see if clang builds or not.