Boost logo

Boost :

From: Fred (fred_at_[hidden])
Date: 2005-09-20 15:00:46

I'd reviewed xpressive sometime last week. Since then, I'd found a place
where xpressive might provide a performance improvement over a Spirit
grammar that I've been using. I worked for a few days on trying to use
xpressive to replace the Spirit grammar. Unfortunately, I ran out of time
and wasn't able to finish it. Even so, my experiences might be of interest

First, I should point out that I really like the library. I ran into a few
glitches, but Eric has been able to fix them pretty quickly. It doesn't look
as though there are any serious problems with the library.

By far the most serious problems that I ran into involved the limitations of
the Microsoft VC7.1 compiler. It really doesn't want to see anything harder
than a simple static xpressive expression. This is a serious limitation of
the library until VC8 comes out for me. Eric says that gcc 3.3+ is a lot
better, though I didn't try that. He also says that the VC8 team used an
early version of the library for testing, so it might get better at some
point. Note that the VC8 beta does at least as well as VC7.1; I can say this
with some certainty since my code was pushing VC7.1 pretty close to its

I can't really give the performance numbers that I was hoping for since I
didn't have time to optimize my xpressive code for anything other than
compiling under VC7.1.

Once I get to start using the library under a compiler that works better,
I'm going to really enjoy playing with xpressive. If nothing else, it seems
like a good model to write template meta-programming with. I frequently got
intelligible error messages out of it! (Most frequently this involved a
Microsoft internal compiler error that pointed to the correct static assert.
Though a bit strange, this is actually better than what boost static assert
is supposed to do.)

Since I now have significantly more experience with the library, I should
explicitly reaffirm my support for adding xpressive to boost.


Boost list run by bdawes at, gregod at, cpdaniel at, john at