Skip to content

@mikir mikir released this Aug 30, 2019 · 72 commits to master since this release

The main goal of this release is to publish modernized C++ generator together with C++ runtime library which supports C++11 standard.

The following are main new features in C++11 generated code:

  • Scoped strongly typed enumerations
  • Field constructors using perfect forwarding
  • Move constructors
  • Move assignment operators
  • Zserio arrays mapped directly to STL vector
  • Zserio optional members mapped to zserio::OptionalHolder

For more information about generated C++11 code, please check Zserio C++ Quick Start Tutorial.

The old C++ generator is still supported and can be invoked using command line argument '-cppStandard c++98'. However, it's deprecated and can be removed anytime in the future.

The second goal of this release is to upgrade the grammar compiler ANTLR from version 2 to the newest version 4 which required a huge zserio core redesign.

The release contains several fixes as well.

Fixes

#107 - C++ and python generate wrong includes / imports for default package sources
#113 - Indexed offsets do not work in Python if code only for reader is generated
#114 - Wrong Python code for functions with the same name
#130 - Generated Python code fails during reading table row with NULL columns
#131 - Implicit array cannot have indexed offsets
#132 - Script build.sh is not working if project path contains spaces
#139 - Amalgamation source file is not generated for default package into directory '.'

New Features

#36 - optional support for initializer_list
#108 - Modern C++ Generator

Improvements

#121 - Generate __init__.py for each package
#123 - Upgrade ANTLR2 to the newest ANTLR4
#125 - cppcheck does not check C++ header files
#136 - Remove GRPC from c++98 emitter
#137 - Forbid ZSERIO prefix in all identifiers
#138 - Remove sum operator

Assets 4
You can’t perform that action at this time.