-
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<Attr, T>
generator.
-
The Spirit.Qi customization point
traits::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.