-
Added
auto_
component in
Spirit.Qi and Spirit.Karma, added
API functions qi::
create_parser
and karma::
create_generator
.
-
Added
auto_
based overloads
for all API functions taking no attributes (see Qi
API and Karma
API).
-
Added
karma::columns
directive.
-
Added
karma::
symbols
generator.
-
The Spirit.Qi customization point
push_back_container
now returns
a bool
to report whether the
item has been added to the container.
-
Added an overload for
karma::maxwidth
directive allowing to
specify an additional parameter (any compatible output iterator) receiving
the 'overspilled' output (output not fitting into the maxwidth limit).
-
It is now possible to use Phoenix expressions as Spirit.Karma
attributes.
-
Added
basic_istream_iterator<Char, Traits>
usable as an equivalent for std::istream_iterator
except its a ForwardIterator
allowing to parse
directly from any std::basic_istream
.
-
Added
qi::
matches
directive.
-
Fixed karma::alternatives to work with embedded containers of hold_any
(i.e. constructs like
*stream
| "empty"
(which fixes the Karma example basic_facilities.cpp).
-
Fixed numeric Spirit.Karma generators for character
types.
-
Fixed
qi::repeat[]
for unused attributes.
-
Fixed rare compilation problem in
karma::repeat[]
.
-
Fixed sequences in Spirit.Qi and Spirit.Karma
to compile properly if the attribute is a (STL) container of (STL) containers.
-
Fixed a problem in
lex::token_def::what
.
-
Fixed Spirit.Qi symbols not to match substrings anymore.
Added
qi::symbols::prefix_find
to allow matching of (prefix-)
substrings.
-
Inherited parameters for rule's usually have to be wrapped in function
objects (i.e.
phoenix::val
), for integral values this was not
necessary. Now all string types can be passed without being wrapped as
well (i.e. std::string
, char
const*
,
etc.).
-
Added concept checks to all relevant Spirit.Qi API
functions enforcing the iterator to be at least of the type
std::forward_iterator_tag
.
-
Fixed the
qi::match
and qi::phrase_match
set of API functions not to internally utilize a std::stream_iterator
anymore as this iterator is of the type std::input_iterator_tag
only, which is not sufficient for Spirit.Qi.