Replies: 5 comments 2 replies
-
What is the purpose of the IDs, if I cannot depend on them to be stable and always refer to the same error?
Agreed.
And some code in the |
Beta Was this translation helpful? Give feedback.
-
Some type traits should also be considered. At least template<typename BasicJsonType, std::enable_if_t<nlohmann::is_basic_json_v<BasicJsonType>, int> = 0>
void to_json(BasicJsonType &j, ...) {
// ...
} |
Beta Was this translation helpful? Give feedback.
-
tcmalloc has a nice list of what users must not do, which is related to this discussion: https://github.com/google/tcmalloc/blob/master/docs/compatibility.md |
Beta Was this translation helpful? Give feedback.
-
Since in #3657 I was mistaken about |
Beta Was this translation helpful? Give feedback.
-
Regarding ABI stability, could you give a guarantee of If the context matters, I hide the library within implementation details and reserve a fixed amount of memory for This is the only ABI detail of |
Beta Was this translation helpful? Give feedback.
-
Regarding #3453, I have some thoughts:
The 4.0.0 release will introduce breaking changes with respect to the public API (see https://semver.org/spec/v2.0.0.html). As first step, we should finally document "the public API" in the sense that we are explicit about which aspects we want to guarantee to be stable between minor and patch versions. Even more important, we need to list which aspects are not part of the public API.
Things I could think about are:
The IDs of thrown exceptions. Rationale: reorganizing the ids can make sense to improve understandability.what()
messages of thrown exceptions. Rationale: improved diagnostics should not be prohibited.nlohmann::details
namespace. Rationale: We are moving things around constantly. Nobody should rely on such internals.Beta Was this translation helpful? Give feedback.
All reactions