Merge branch 'develop' of https://github.com/nlohmann/json into comments
This commit is contained in:
		
						commit
						139a0258cc
					
				
					 9 changed files with 110 additions and 57 deletions
				
			
		| 
						 | 
				
			
			@ -12329,6 +12329,7 @@ class binary_writer
 | 
			
		|||
{
 | 
			
		||||
    using string_t = typename BasicJsonType::string_t;
 | 
			
		||||
    using binary_t = typename BasicJsonType::binary_t;
 | 
			
		||||
    using number_float_t = typename BasicJsonType::number_float_t;
 | 
			
		||||
 | 
			
		||||
  public:
 | 
			
		||||
    /*!
 | 
			
		||||
| 
						 | 
				
			
			@ -12495,18 +12496,7 @@ class binary_writer
 | 
			
		|||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    if (static_cast<double>(j.m_value.number_float) >= static_cast<double>(std::numeric_limits<float>::lowest()) and
 | 
			
		||||
                            static_cast<double>(j.m_value.number_float) <= static_cast<double>((std::numeric_limits<float>::max)()) and
 | 
			
		||||
                            static_cast<double>(static_cast<float>(j.m_value.number_float)) == static_cast<double>(j.m_value.number_float))
 | 
			
		||||
                    {
 | 
			
		||||
                        oa->write_character(get_cbor_float_prefix(static_cast<float>(j.m_value.number_float)));
 | 
			
		||||
                        write_number(static_cast<float>(j.m_value.number_float));
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        oa->write_character(get_cbor_float_prefix(j.m_value.number_float));
 | 
			
		||||
                        write_number(j.m_value.number_float);
 | 
			
		||||
                    }
 | 
			
		||||
                    write_compact_float(j.m_value.number_float, detail::input_format_t::cbor);
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -12805,8 +12795,7 @@ class binary_writer
 | 
			
		|||
 | 
			
		||||
            case value_t::number_float:
 | 
			
		||||
            {
 | 
			
		||||
                oa->write_character(get_msgpack_float_prefix(j.m_value.number_float));
 | 
			
		||||
                write_number(j.m_value.number_float);
 | 
			
		||||
                write_compact_float(j.m_value.number_float, detail::input_format_t::msgpack);
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -13819,6 +13808,26 @@ class binary_writer
 | 
			
		|||
        oa->write_characters(vec.data(), sizeof(NumberType));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void write_compact_float(const number_float_t n, detail::input_format_t format)
 | 
			
		||||
    {
 | 
			
		||||
        if (static_cast<double>(n) >= static_cast<double>(std::numeric_limits<float>::lowest()) and
 | 
			
		||||
                static_cast<double>(n) <= static_cast<double>((std::numeric_limits<float>::max)()) and
 | 
			
		||||
                static_cast<double>(static_cast<float>(n)) == static_cast<double>(n))
 | 
			
		||||
        {
 | 
			
		||||
            oa->write_character(format == detail::input_format_t::cbor
 | 
			
		||||
                                ? get_cbor_float_prefix(static_cast<float>(n))
 | 
			
		||||
                                : get_msgpack_float_prefix(static_cast<float>(n)));
 | 
			
		||||
            write_number(static_cast<float>(n));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            oa->write_character(format == detail::input_format_t::cbor
 | 
			
		||||
                                ? get_cbor_float_prefix(n)
 | 
			
		||||
                                : get_msgpack_float_prefix(n));
 | 
			
		||||
            write_number(n);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  public:
 | 
			
		||||
    // The following to_char_type functions are implement the conversion
 | 
			
		||||
    // between uint8_t and CharType. In case CharType is not unsigned,
 | 
			
		||||
| 
						 | 
				
			
			@ -22933,7 +22942,8 @@ class basic_json
 | 
			
		|||
    number_unsigned | 256..65535                        | uint 16          | 0xCD
 | 
			
		||||
    number_unsigned | 65536..4294967295                 | uint 32          | 0xCE
 | 
			
		||||
    number_unsigned | 4294967296..18446744073709551615  | uint 64          | 0xCF
 | 
			
		||||
    number_float    | *any value*                       | float 64         | 0xCB
 | 
			
		||||
    number_float    | *any value representable by a float*     | float 32 | 0xCA
 | 
			
		||||
    number_float    | *any value NOT representable by a float* | float 64 | 0xCB
 | 
			
		||||
    string          | *length*: 0..31                   | fixstr           | 0xA0..0xBF
 | 
			
		||||
    string          | *length*: 32..255                 | str 8            | 0xD9
 | 
			
		||||
    string          | *length*: 256..65535              | str 16           | 0xDA
 | 
			
		||||
| 
						 | 
				
			
			@ -22957,9 +22967,6 @@ class basic_json
 | 
			
		|||
          - arrays with more than 4294967295 elements
 | 
			
		||||
          - objects with more than 4294967295 elements
 | 
			
		||||
 | 
			
		||||
    @note The following MessagePack types are not used in the conversion:
 | 
			
		||||
          - float 32 (0xCA)
 | 
			
		||||
 | 
			
		||||
    @note Any MessagePack output created @ref to_msgpack can be successfully
 | 
			
		||||
          parsed by @ref from_msgpack.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue