Procházet zdrojové kódy

Fixed warnings in Visual Studio

Benoit Blanchon před 11 roky
rodič
revize
782b178f4e

+ 8 - 8
include/ArduinoJson/JsonVariant.hpp

@@ -59,15 +59,15 @@ class JsonVariant : public JsonPrintable<JsonVariant> {
 
   operator bool() const;
   operator double() const;
-  operator float() const { return as<double>(); }
-  operator signed char() const { return as<long>(); }
-  operator signed int() const { return as<long>(); }
+  operator float() const { return static_cast<float>(as<double>()); }
+  operator signed char() const { return static_cast<signed char>(as<long>()); }
+  operator signed int() const { return static_cast<signed int>(as<long>()); }
   operator signed long() const;
-  operator signed short() const { return as<long>(); }
-  operator unsigned char() const { return as<long>(); }
-  operator unsigned int() const { return as<long>(); }
-  operator unsigned long() const { return as<long>(); }
-  operator unsigned short() const { return as<long>(); }
+  operator signed short() const { return static_cast<signed short>(as<long>()); }
+  operator unsigned char() const { return static_cast<unsigned char>(as<long>()); }
+  operator unsigned int() const { return static_cast<unsigned int>(as<long>()); }
+  operator unsigned long() const { return static_cast<unsigned long>(as<long>()); }
+  operator unsigned short() const { return static_cast<unsigned short>(as<long>()); }
   operator const char *() const;
   operator JsonArray &() const;
   operator JsonObject &() const;

+ 1 - 1
src/Internals/JsonParser.cpp

@@ -117,7 +117,7 @@ void JsonParser::parseNumberTo(JsonVariant &destination) {
   if (*endOfLong == '.') {
     // stopped on a decimal separator
     double doubleValue = strtod(_ptr, &_ptr);
-    uint8_t decimals = _ptr - endOfLong - 1;
+    uint8_t decimals = static_cast<uint8_t>(_ptr - endOfLong - 1);
     destination.set(doubleValue, decimals);
   } else {
     _ptr = endOfLong;