Boost spirit: overlapping inner struct result

Hi everyone When trying to compile the serialization library for my Montavista embedded computer, I am getting a strange error message concerning boost spirit/core/primitives/numerics.hpp stating that struct result in sign_parser has already been defined before. Back then, I couldn't deny that fact, as result is already defined in sign_parser's superclass parser, so I renamed the struct in the subclass to tresult and the library compiled fine. Currently, I am asking myself what influence such a change might have on the running program. I am having unexplainable SIGABRT signals appearing and killing my program, thus I suspect my change was not that mere after all. Is there a better workaround I could use to solve this problem? Thanks in advance for your replies and best regards Pascal Kesseli PS: g++ --version is for my compiler: g++ (GCC) 3.4.3 (MontaVista 3.4.3-25.0.30.0501131 2005-07-23) Copyright (C) 2004 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE. PPS: The compiler error message (quite self-explanatory, even though having some german phrases in it): Building file: ../xml_grammar.cpp Invoking: GCC C++ Compiler g++ -O0 -Wall -c -fmessage-length=0 -MMD -MP -MF"xml_grammar.d" -MT"xml_grammar.d" -o"xml_grammar.o" "../xml_grammar.cpp" In file included from ../basic_xml_grammar.ipp:22, from ../xml_grammar.cpp:63: /usr/local/xscale_be/bin/../target/usr/include/boost/spirit/core/primitives/numerics.hpp:122: Fehler: Deklaration von »template<class ScannerT> struct boost::spirit::sign_parser::result« /usr/local/xscale_be/bin/../target/usr/include/boost/spirit/core/parser.hpp:123: Fehler: steht mit der vorherigen Deklaration »template<class ScannerT> struct boost::spirit::parserboost::spirit::sign_parser::result« in Konflikt make: *** [xml_grammar.o] Fehler 1

Pascal Kesseli wrote:
Hi everyone
When trying to compile the serialization library for my Montavista embedded computer, I am getting a strange error message concerning boost spirit/core/primitives/numerics.hpp stating that struct result in sign_parser has already been defined before.
Back then, I couldn't deny that fact, as result is already defined in sign_parser's superclass parser, so I renamed the struct in the subclass to tresult and the library compiled fine.
Currently, I am asking myself what influence such a change might have on the running program. I am having unexplainable SIGABRT signals appearing and killing my program, thus I suspect my change was not that mere after all.
Is there a better workaround I could use to solve this problem?
Thanks in advance for your replies and best regards
I don't quite understand what's happening here. It shouldn't be an error if a base class and a subclass share the same result struct. Try this short example: struct x { struct result { typedef int type; }; }; struct y : x { struct result { typedef double type; }; }; Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net
participants (2)
-
Joel de Guzman
-
Pascal Kesseli