Boost logo

Boost :

From: Michiel Salters (michiel.salters_at_[hidden])
Date: 2005-02-09 07:34:24

> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Tom Brinkman
> Sent: dinsdag 8 februari 2005 3:48
> To: boost_at_[hidden]
> Subject: [boost] Wave C++ Review Begins Today - February 7, 2005

I'm currently looking at the library, trying to get the
(included) command-line executable to work. So far, I've
found two documentation minor nits:
* Source and zip say version 1.1.2, index.html says 1.2
* index.html says program_options must be downloaded, but it's
  in boost 1.32 ?
one serious bug in wave\cpplexer\re2clex\cpp_re2c_lexer.hpp:

template <typename IteratorT, typename PositionT>
lexer<IteratorT, PositionT>::lexer(IteratorT const &first,
        IteratorT const &last, PositionT const &pos,
        boost::wave::language_support language)
: filename(pos.get_file()), at_eof(false)
    memset(&scanner, '\0', sizeof(Scanner));
    scanner.fd = -1;
    scanner.eol_offsets = aq_create();
    scanner.first = scanner.act = (uchar *)&(*first);
    scanner.last = (uchar *)&(*last);
[ IteratorT = std::string::iterator in the example ]

This assumes that the range [first,last] is
dereferenacable and contiguous in memory. This of course is
not mandated by the standard.

I found this, because VC8.0 has iterator debugging, and it
asserted. Not sure if this is the exact cause, I just found
the code in the stacktrace.
I tried to hack the Scanner by replacing its uchar*
with iterator's but that really doesn't work. The generated
code uses memcpy's and malloc's.
I'll try to see if I can avoid this, perhaps try another
string type. Perhaps the command-line example should use
BOOST_WAVE_STRINGTYPE iso std::string?

Michiel Salters

This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.

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