BDE 4.1.0 Release¶
Schedule¶
The BDE team announces that the BDE 4.1.0 production release was completed on Thursday, February 1, 2024.
BDE 4.1.0 Release Highlights¶
Behavioral Change: bdljsn::JsonUtil
Now “Strict”¶
bdljsn::JsonUtil
provides (overloaded) read
methods that each convert a JSON document (text)
to a
bdljsn::Json
object. The policy of that conversion now strictly conforms to
RFC8259. Thus, some JSON documents
that were previously accepted will no longer convert.
Briefly, the following are now disallowed:
multiple, consecutive separators (i.e., colons and commas)
non-UTF8 string literals
unescaped control characters
trailing top-level commas
See the conformanceMode
feature of
bdljsn_tokenizer
for details.
In addition, a new component, bdljsn_jsontestsuiteutil
, was added that
provides the contents of
JsonTestSuite.
New Features¶
When decoding into an integer-valued enumeration, baljsn::Decoder and balber::BerDecoder now accept a representation that was produced by encoding an integer or a customized type whose base type is integral. Similarly, when decoding into an integer or a customized type whose base type is integral, the representation produced by encoding an integer-valued enumeration is accepted.
In C++11 and later, the manipulators
bsl::map<K, M>::operator[]
andbsl::unordered_map<K, M>::operator[]
now work correctly whenM
is non-copyable and non-movable.
Deprecated Features¶
The bdlcc::ObjectCatalog::value accessor has been deprecated because it is not thread-safe. Use the
find
orisMember
accessor, or access the object through an iterator.
Fixed DRQSs:¶
Summary |
---|
bdlf::BindUtil::bindS: clarify documentation of methods |
Update uses of ‘volatile’ in BDE |
bdlcc::ObjectCatalog: deprecate ‘value’ accessor |
Extend BDE Coding Standards to allow for hidden friends idiom |
Remove unnecessary ‘volatile’ qualifiers from the ‘bslmt_threadutilimpl_win32.cpp’ |
Improve static variables initialization in ‘bslmt_threadutilimpl_cpp32’ |
bsl::unordered_map::operator[] behaviour seems broken for non-movable types |
Bring the ‘bsl::copy_n’ into compliance with the standard counterpart |
Reintroduce EN for balber/baljsn option to decode ints into int enums and vice versa |
ball::LoggerManager creates process-wide static w/o globalAllocator |
‘bsl::is_convertible’ incorrectly returns ‘true’ with C++03 |
Improve confusing #ifdef check in bslmf_isconvertible (and others) |
bslma_bslallocator test failures in non-asserion build |
Reintroduce the JSON Conformance test suite |
Please allow non-copyable types in map::operator[] |
Multiple definitions of hashAppend for std::monostate |
add note to bslmt_fastpostsemaphoreimpl for DRQS |
stringop-overflow error |
Temporary disable genering PMR support for linux production builds |