Boost logo

Boost :

Subject: Re: [boost] update to 1_38_0: "classic" spirit not working anymore
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-02-12 17:11:48


AMDG

Oliver Kullmann wrote:
> with 1_38_0 I can't get any code compiling related to spirit; all that worked
> with 1_34_1.
>
> According to those compiler warnings I'm using now the "classic" versions,
> but this doesn't help. Consider
>
> #include <boost/spirit/include/classic_core.hpp>
> namespace OKlib {
> namespace Parser {
> template <typename CharT = char, typename ParseIterator_ = const CharT*>
> class ParserBase {
> public :
> typedef CharT char_type;
> typedef ParseIterator_ ParseIterator;
> typedef boost::spirit::scanner<ParseIterator> scanner_type;
>
> This used to work (with boost/spirit/core.hpp), but now I get the error message
> (gcc version 4.1.2):
>
> ParserBase.hpp:27: error: ISO C++ forbids declaration of ‘scanner’ with no type
> ParserBase.hpp:27: error: typedef name may not be a nested-name-specifier
> ParserBase.hpp:27: error: expected ‘;’ before ‘<’ token
>
> where line 27 is the line where scanner_type is defined. ???
>
> Did the definition of class template scanner change (apparently it now has two
> parameters)?
>

No. The namespace changed. Unless
BOOST_SPIRIT_USE_OLD_NAMESPACE
is defined, the namespace is boost::spirit::classic.

In Christ,
Steven Watanabe


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk