Boost logo

Boost Users :

From: Christoph Duelli (duelli_at_[hidden])
Date: 2008-06-02 03:39:02

Christoph wrote:

Ok, checked it:
I did indeed #ifdef out the lines stated in the last post.

As I have said, the above two sections in regex_actions.hpp cause trouble.
Even including regex_actions.hpp causes the compiler to choke on it.
(see gcc-out1.txt for compiling just the header *with* these sections not
#ifdef'ed out.

I have attached a few small demos that produce the remaining problem(s).
The demo compiles (without warnings even) on gcc 4.1.2, it does not compile
(and has some warnings on gcc 3.3.3).

The compiler output of
  g++ test.cpp -I $BOOST_INC
is attached ($BOOST_INC obv. points to the Boost 1.35 includes).

ii) If I include some other headers that finally cause (internally!) to
include boost/optional.hpp
(which Boost header is not that important, <boost/format.hpp> is an
example), I get

(see gcc-out2.txt)

Seems optional for some reason conflicts with boost::optional on gcc 3.3.3;
if I do not include some other Boost Libs (which I am using in my code, too,
like foreach, format) then the optional does compile.
Writing boost::xpressive::optional fixes this.
(As I said, that code compiles np on gcc 4.1.2)

iii) I get some additional warnings like:
boost/xpressive/traits/cpp_regex_traits.hpp:245: warning: comparison
   is always false due to limited range of data type

(see gcc-out3.txt; also gcc-out2.txt)
this warnings appear even if just doing
  sregex rx = _s;

I hope, this information is enough to pinpoint potential issues.
Best regards


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at