🚨 removed compiler warnings
This commit is contained in:
		
							parent
							
								
									0460b90977
								
							
						
					
					
						commit
						850922269d
					
				
					 5 changed files with 26 additions and 28 deletions
				
			
		| 
						 | 
					@ -35,6 +35,7 @@ class binary_reader
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    using number_integer_t = typename BasicJsonType::number_integer_t;
 | 
					    using number_integer_t = typename BasicJsonType::number_integer_t;
 | 
				
			||||||
    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;
 | 
					    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;
 | 
				
			||||||
 | 
					    using number_float_t = typename BasicJsonType::number_float_t;
 | 
				
			||||||
    using string_t = typename BasicJsonType::string_t;
 | 
					    using string_t = typename BasicJsonType::string_t;
 | 
				
			||||||
    using json_sax_t = json_sax<BasicJsonType>;
 | 
					    using json_sax_t = json_sax<BasicJsonType>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -423,19 +424,21 @@ class binary_reader
 | 
				
			||||||
                    val = (mant == 0) ? std::numeric_limits<double>::infinity()
 | 
					                    val = (mant == 0) ? std::numeric_limits<double>::infinity()
 | 
				
			||||||
                          : std::numeric_limits<double>::quiet_NaN();
 | 
					                          : std::numeric_limits<double>::quiet_NaN();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                return sax->number_float((half & 0x8000) != 0 ? -val : val, "");
 | 
					                return sax->number_float((half & 0x8000) != 0
 | 
				
			||||||
 | 
					                                         ? static_cast<number_float_t>(-val)
 | 
				
			||||||
 | 
					                                         : static_cast<number_float_t>(val), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xFA: // Single-Precision Float (four-byte IEEE 754)
 | 
					            case 0xFA: // Single-Precision Float (four-byte IEEE 754)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xFB: // Double-Precision Float (eight-byte IEEE 754)
 | 
					            case 0xFB: // Double-Precision Float (eight-byte IEEE 754)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            default: // anything else (0xFF is handled inside the other types)
 | 
					            default: // anything else (0xFF is handled inside the other types)
 | 
				
			||||||
| 
						 | 
					@ -676,13 +679,13 @@ class binary_reader
 | 
				
			||||||
            case 0xCA: // float 32
 | 
					            case 0xCA: // float 32
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xCB: // float 64
 | 
					            case 0xCB: // float 64
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xCC: // uint 8
 | 
					            case 0xCC: // uint 8
 | 
				
			||||||
| 
						 | 
					@ -1464,13 +1467,13 @@ class binary_reader
 | 
				
			||||||
            case 'd':
 | 
					            case 'd':
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 'D':
 | 
					            case 'D':
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 'C':  // char
 | 
					            case 'C':  // char
 | 
				
			||||||
| 
						 | 
					@ -1664,7 +1667,7 @@ class binary_reader
 | 
				
			||||||
    std::string get_token_string() const
 | 
					    std::string get_token_string() const
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        char cr[3];
 | 
					        char cr[3];
 | 
				
			||||||
        snprintf(cr, 3, "%.2X", current);
 | 
					        snprintf(cr, 3, "%.2hhX", static_cast<unsigned char>(current));
 | 
				
			||||||
        return std::string{cr};
 | 
					        return std::string{cr};
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1173,7 +1173,7 @@ scan_number_done:
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                // escape control characters
 | 
					                // escape control characters
 | 
				
			||||||
                char cs[9];
 | 
					                char cs[9];
 | 
				
			||||||
                snprintf(cs, 9, "<U+%.4X>", c);
 | 
					                snprintf(cs, 9, "<U+%.4hhX>", c);
 | 
				
			||||||
                result += cs;
 | 
					                result += cs;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3165,7 +3165,7 @@ scan_number_done:
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                // escape control characters
 | 
					                // escape control characters
 | 
				
			||||||
                char cs[9];
 | 
					                char cs[9];
 | 
				
			||||||
                snprintf(cs, 9, "<U+%.4X>", c);
 | 
					                snprintf(cs, 9, "<U+%.4hhX>", c);
 | 
				
			||||||
                result += cs;
 | 
					                result += cs;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
| 
						 | 
					@ -5670,6 +5670,7 @@ class binary_reader
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    using number_integer_t = typename BasicJsonType::number_integer_t;
 | 
					    using number_integer_t = typename BasicJsonType::number_integer_t;
 | 
				
			||||||
    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;
 | 
					    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;
 | 
				
			||||||
 | 
					    using number_float_t = typename BasicJsonType::number_float_t;
 | 
				
			||||||
    using string_t = typename BasicJsonType::string_t;
 | 
					    using string_t = typename BasicJsonType::string_t;
 | 
				
			||||||
    using json_sax_t = json_sax<BasicJsonType>;
 | 
					    using json_sax_t = json_sax<BasicJsonType>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6058,19 +6059,21 @@ class binary_reader
 | 
				
			||||||
                    val = (mant == 0) ? std::numeric_limits<double>::infinity()
 | 
					                    val = (mant == 0) ? std::numeric_limits<double>::infinity()
 | 
				
			||||||
                          : std::numeric_limits<double>::quiet_NaN();
 | 
					                          : std::numeric_limits<double>::quiet_NaN();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                return sax->number_float((half & 0x8000) != 0 ? -val : val, "");
 | 
					                return sax->number_float((half & 0x8000) != 0
 | 
				
			||||||
 | 
					                                         ? static_cast<number_float_t>(-val)
 | 
				
			||||||
 | 
					                                         : static_cast<number_float_t>(val), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xFA: // Single-Precision Float (four-byte IEEE 754)
 | 
					            case 0xFA: // Single-Precision Float (four-byte IEEE 754)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xFB: // Double-Precision Float (eight-byte IEEE 754)
 | 
					            case 0xFB: // Double-Precision Float (eight-byte IEEE 754)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            default: // anything else (0xFF is handled inside the other types)
 | 
					            default: // anything else (0xFF is handled inside the other types)
 | 
				
			||||||
| 
						 | 
					@ -6311,13 +6314,13 @@ class binary_reader
 | 
				
			||||||
            case 0xCA: // float 32
 | 
					            case 0xCA: // float 32
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xCB: // float 64
 | 
					            case 0xCB: // float 64
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 0xCC: // uint 8
 | 
					            case 0xCC: // uint 8
 | 
				
			||||||
| 
						 | 
					@ -7099,13 +7102,13 @@ class binary_reader
 | 
				
			||||||
            case 'd':
 | 
					            case 'd':
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float number;
 | 
					                float number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(static_cast<double>(number), "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 'D':
 | 
					            case 'D':
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                double number;
 | 
					                double number;
 | 
				
			||||||
                return get_number(number) and sax->number_float(number, "");
 | 
					                return get_number(number) and sax->number_float(static_cast<number_float_t>(number), "");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case 'C':  // char
 | 
					            case 'C':  // char
 | 
				
			||||||
| 
						 | 
					@ -7299,7 +7302,7 @@ class binary_reader
 | 
				
			||||||
    std::string get_token_string() const
 | 
					    std::string get_token_string() const
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        char cr[3];
 | 
					        char cr[3];
 | 
				
			||||||
        snprintf(cr, 3, "%.2X", current);
 | 
					        snprintf(cr, 3, "%.2hhX", static_cast<unsigned char>(current));
 | 
				
			||||||
        return std::string{cr};
 | 
					        return std::string{cr};
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,14 +40,6 @@ using nlohmann::json;
 | 
				
			||||||
#include <unordered_set>
 | 
					#include <unordered_set>
 | 
				
			||||||
#include <valarray>
 | 
					#include <valarray>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
template <typename MapType>
 | 
					 | 
				
			||||||
void map_type_conversion_checks()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TEST_CASE("value conversion")
 | 
					TEST_CASE("value conversion")
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    SECTION("get an object (explicit)")
 | 
					    SECTION("get an object (explicit)")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1191,7 +1191,7 @@ TEST_CASE("nst's JSONTestSuite (2)")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                CAPTURE(filename);
 | 
					                CAPTURE(filename);
 | 
				
			||||||
                std::ifstream f(filename);
 | 
					                std::ifstream f(filename);
 | 
				
			||||||
                CHECK_THROWS_AS(json::parse(f), json::parse_error);
 | 
					                CHECK_THROWS_AS(json::parse(f), json::parse_error&);
 | 
				
			||||||
                std::ifstream f2(filename);
 | 
					                std::ifstream f2(filename);
 | 
				
			||||||
                CHECK(not json::accept(f2));
 | 
					                CHECK(not json::accept(f2));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -1306,7 +1306,7 @@ TEST_CASE("nst's JSONTestSuite (2)")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                CAPTURE(filename);
 | 
					                CAPTURE(filename);
 | 
				
			||||||
                std::ifstream f(filename);
 | 
					                std::ifstream f(filename);
 | 
				
			||||||
                CHECK_THROWS_AS(json::parse(f), json::exception); // could be parse_error or out_of_range
 | 
					                CHECK_THROWS_AS(json::parse(f), json::exception&); // could be parse_error or out_of_range
 | 
				
			||||||
                std::ifstream f2(filename);
 | 
					                std::ifstream f2(filename);
 | 
				
			||||||
                CHECK(not json::accept(f2));
 | 
					                CHECK(not json::accept(f2));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue