CDT v3.0.1 Release Notes
This patch release contains a bug fix, an enhancement, and documentation updates.
Read on for details.
Bug fixes
Inconsistency in ABI generated for map
In CDT releases prior to 3.0.0, the ABI generated for std::map<K,V>
was a list of structs in which the ABI for the inner struct included fields first
and second
, which is the same ABI that would be generated for std::pair<K,V>
.
In CDT 3.0.0, the behavior of ABI generation for std::map<K,V>
unintentionally changed such that the inner struct would sometimes use the fields key
and value
instead (depending on whether a std::map<K,V>
or std::pair<K,V>
was encountered first in the code scanned by the ABI generator). Additionally, if the ABI generation chose the version of the struct with fields key
and value
for the inner struct generated from a std::map<K,V>
, then all other types involving std::pair<K,V>
for different fields in the ABI would also use that version of the struct with fields key
and value
as opposed to version containing first
and second
that was intended.
This release fixes the bug introduced in CDT 3.0.0 to ensure that the inner struct generated in the ABI for std::map<K,V>
is always the version that is compatible with the intended ABI of std::pair<K,V>
: the version that contains first
and second
fields.
Enhancements
Make varints compile-time constructible
The varints unsigned_int
and signed_int
have been updated to be compile-time constructable to be available for compile time constant expressions.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
Full list of changes since last release
PRs
Full Changelog: v3.0.0...v3.0.1