| Home | Libraries | People | FAQ | More

### Spirit V2.5.5

##### What's changed from V2.5.4 (Boost V1.66.0) to V2.5.5 (Boost V1.67.0)

There was no version bump and changelog for Boost V1.61.0-1.66.0 releases.

##### Bug Fixes in Qi or Karma

- Fixed keyword directives compilation on C++11. GH#256 TRAC#11493
- Fixed subrules compilation. GH#279 GH#259
- Fixed subrules use after scope bug. GH#284 TRAC#5270
- Fixed undefined behavior in sequential or operator. Underlying parsers order of execution was dependent on compiler. GH#310
- Spirit was accidentally relaying on `types` typedef of `boost::optional`. The typedef was removed in the new optional implementation. GH#271 TRAC#12349
- Fixed problems with `BOOST_SPIRIT_NO_PREDEFINED_TERMINALS` (`attr_cast`, `confix`, `distinct`, `keywords`, and `flush_multi_pass`). GH#314 TRAC#13311
- Added missing copy assignment operator to `hold_any`. GH#361 TRAC#8268

##### Bug Fixes in Qi

- Fixed alternate operator. GH#201 GH#271 TRAC#12349
- Fixed signed integer overflow in real parser. GH#245
- Fixed overflow problem in `uint_parser<signed T>`. GH#297
- Fixed `get_current_line`, `get_line_start`, and added `get_line_end`. GH#304
- Permutations parser were always initializing optionals. GH#319 TRAC#12473
- Changed iterator concept static assert from `ForwardIterator` to `ReadableIteratorConcept` && `ForwardTraversalConcept`. GH#320
- Added assertations to real parsers to ensure that the `parse_frac_n` from user defined real policy does not return negative values and also to prevent static analyzers false-positives. GH#358

##### Bug Fixes in Karma

- Fixed alternate operator. GH#271
- Fixed `no_buffering_policy` missing copy constructor. GH#261
- The `ostream_iterator` was inheriting `std::iterator` which is deprecated in C++17. GH#345

##### Bug Fixes in Lex

- Store id as promoted type to allow out-of-enum values. GH#247
- Fixed C2001 'newline in constant' warning in generated lexers. GH#324 TRAC#11540