From e1cef0b58b1a89915577ca163fc491c2e84d4b34 Mon Sep 17 00:00:00 2001 From: eike-fokken <33839210+eike-fokken@users.noreply.github.com> Date: Tue, 16 Mar 2021 00:11:10 +0100 Subject: [PATCH] fixed occurences of old-style casts and an implicit cast to double (#151) * fixed occurences of old-style casts and an implicit cast to double Co-authored-by: Eike --- src/json-uri.cpp | 2 +- src/json-validator.cpp | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/json-uri.cpp b/src/json-uri.cpp index 6ff1c16..2602556 100644 --- a/src/json-uri.cpp +++ b/src/json-uri.cpp @@ -35,7 +35,7 @@ void json_uri::update(const std::string &uri) } std::string hex = pointer.substr(pos + 1, 2); - char ascii = (char) std::strtoul(hex.c_str(), nullptr, 16); + char ascii = static_cast(std::strtoul(hex.c_str(), nullptr, 16)); pointer.replace(pos, 3, 1, ascii); pos--; diff --git a/src/json-validator.cpp b/src/json-validator.cpp index 7d602ac..583ea40 100644 --- a/src/json-validator.cpp +++ b/src/json-validator.cpp @@ -10,10 +10,10 @@ #include "json-patch.hpp" +#include #include #include #include -#include using nlohmann::json; using nlohmann::json_patch; @@ -192,7 +192,7 @@ public: for (auto &rt : ref_tokens) { auto existing_object = unk_kw->find(rt); if (existing_object == unk_kw->end()) - (*unk_kw)[rt] = json::object(); + (*unk_kw)[rt] = json::object(); unk_kw = &(*unk_kw)[rt]; } (*unk_kw)[key] = value; @@ -456,7 +456,7 @@ class type_schema : public schema void validate(const json::json_pointer &ptr, const json &instance, json_patch &patch, error_handler &e) const override final { // depending on the type of instance run the type specific validator - if present - auto type = type_[(uint8_t) instance.type()]; + auto type = type_[static_cast(instance.type())]; if (type) type->validate(ptr, instance, patch, e); @@ -500,7 +500,7 @@ public: type_schema(json &sch, root_schema *root, const std::vector &uris) - : schema(root), type_((uint8_t) json::value_t::discarded + 1) + : schema(root), type_(static_cast(json::value_t::discarded) + 1) { // association between JSON-schema-type and NLohmann-types static const std::vector> schema_types = { @@ -518,7 +518,7 @@ public: auto attr = sch.find("type"); if (attr == sch.end()) // no type field means all sub-types possible for (auto &t : schema_types) - type_[(uint8_t) t.second] = type_schema::make(sch, t.second, root, uris, known_keywords); + type_[static_cast(t.second)] = type_schema::make(sch, t.second, root, uris, known_keywords); else { switch (attr.value().type()) { // "type": "type" @@ -526,14 +526,14 @@ public: auto schema_type = attr.value().get(); for (auto &t : schema_types) if (t.first == schema_type) - type_[(uint8_t) t.second] = type_schema::make(sch, t.second, root, uris, known_keywords); + type_[static_cast(t.second)] = type_schema::make(sch, t.second, root, uris, known_keywords); } break; case json::value_t::array: // "type": ["type1", "type2"] for (auto &schema_type : attr.value()) for (auto &t : schema_types) if (t.first == schema_type) - type_[(uint8_t) t.second] = type_schema::make(sch, t.second, root, uris, known_keywords); + type_[static_cast(t.second)] = type_schema::make(sch, t.second, root, uris, known_keywords); break; default: @@ -553,16 +553,16 @@ public: // with nlohmann::json float instance (but number in schema-definition) can be seen as unsigned or integer - // reuse the number-validator for integer values as well, if they have not been specified explicitly - if (type_[(uint8_t) json::value_t::number_float] && !type_[(uint8_t) json::value_t::number_integer]) - type_[(uint8_t) json::value_t::number_integer] = type_[(uint8_t) json::value_t::number_float]; + if (type_[static_cast(json::value_t::number_float)] && !type_[static_cast(json::value_t::number_integer)]) + type_[static_cast(json::value_t::number_integer)] = type_[static_cast(json::value_t::number_float)]; // #54: JSON-schema does not differentiate between unsigned and signed integer - nlohmann::json does // we stick with JSON-schema: use the integer-validator if instance-value is unsigned - type_[(uint8_t) json::value_t::number_unsigned] = type_[(uint8_t) json::value_t::number_integer]; + type_[static_cast(json::value_t::number_unsigned)] = type_[static_cast(json::value_t::number_integer)]; // special for binary types - if (type_[(uint8_t) json::value_t::string]) { - type_[(uint8_t) json::value_t::binary] = type_[(uint8_t) json::value_t::string]; + if (type_[static_cast(json::value_t::string)]) { + type_[static_cast(json::value_t::binary)] = type_[static_cast(json::value_t::string)]; } attr = sch.find("enum"); @@ -784,7 +784,7 @@ class numeric : public schema bool violates_multiple_of(T x) const { double res = std::remainder(x, multipleOf_.second); - double eps = std::nextafter(x, 0) - x; + double eps = std::nextafter(x, 0) - static_cast(x); return std::fabs(res) > std::fabs(eps); }