Custom object_t types whose key_type is not string_t compiled with
v3.12.0 for several APIs that unreleased changes broke:
- to_bson failed for every custom key type (#5553 kept a const string_t*
to the key); the nested entry's header is now written where the entry
is found.
- Copying deep values (and parse, merge_patch, update, insert) required
operator== on keys (#5389); keys without one are now paired via find().
- to_cbor/to_msgpack required an implicit conversion to string_t (#5746,
#5328); keys without one go through a temporary basic_json again.
- at() required a conversion to string_t for its error message (#5727);
other keys are passed to concat() unchanged again.
The new unit-custom-object-key-type.cpp covers five key types with
different capabilities.
Signed-off-by: Niels Lohmann <mail@nlohmann.me>