Boost logo

Boost :

Subject: [boost] update to 1_38_0: "classic" spirit not working anymore
From: Oliver Kullmann (O.Kullmann_at_[hidden])
Date: 2009-02-12 17:05:44


Hi,

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)?

Oliver


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