This will be the last release with support for no-exceptions. This is because the code tends to get more obscured with macros to minimize difference yet even code with exceptions has to bear marks of legacy error handling. Exceptions allows to produce much faster encode/decode for sunny cases (by 2 orders of magnitude) and only by 2-3 times slower for error cases.
The following noticeable features were implemented since previous release:
- C++17 required, dropped old compilers
- initial support for ASN.1 BER, JSON, Protobuf
- allow allocator w/o error context
- include buffer info in error
- out of order Mandatory and Optional
- pop_back
- addressable length
- typed exceptions
- non-fixed tags for choice and set
- assert tags are unique for choice and set
- optional bool as setter result
- get name of IE by tag value for choice and set
- generic copy for container and choice
- setter signature is changed to have const-correct encode
- zero-length strings
- in-/ex-clusive padding