Zserio v1.3.0
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