From b27700a7e0b281ece3dea23060c17e0cae28715d Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 20 May 2021 17:00:53 -0400 Subject: Reduced exposure of implementation details --- src/defines.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/defines.h') diff --git a/src/defines.h b/src/defines.h index 78ab770..f55a56f 100644 --- a/src/defines.h +++ b/src/defines.h @@ -6,8 +6,12 @@ #define NLOHMANN_FRIEND_DECLARES(Type) \ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t); \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t); \ - virtual nlohmann::json serialize(void) const override { nlohmann::json ret; to_json(ret, *this); return ret; } + virtual nlohmann::json serialize(void) const { nlohmann::json ret; to_json(ret, *this); return ret; } #define NLOHMANN_FRIEND_DEFS(Super, Derived, PImpl) \ void to_json(nlohmann::json& nlohmann_json_j, const Derived& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); nlohmann::to_json(nlohmann_json_j, *nlohmann_json_t.PImpl); } \ void from_json(const nlohmann::json& nlohmann_json_j, Derived& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); nlohmann::from_json(nlohmann_json_j, *nlohmann_json_t.PImpl); } + +#define NLOHMANN_FRIEND_DEFS_BASE(Type, PImpl) \ + void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, *nlohmann_json_t.PImpl); } \ + void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, *nlohmann_json_t.PImpl); } -- cgit v1.2.3