| 4605 | !std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, |
| 4606 | int > = 0 > |
| 4607 | void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) |
| 4608 | { |
| 4609 | switch (static_cast<value_t>(j)) |
| 4610 | { |
| 4611 | case value_t::number_unsigned: |
| 4612 | { |
| 4613 | val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); |
| 4614 | break; |
| 4615 | } |
| 4616 | case value_t::number_integer: |
| 4617 | { |
| 4618 | val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); |
| 4619 | break; |
| 4620 | } |
| 4621 | case value_t::number_float: |
| 4622 | { |
| 4623 | val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); |
| 4624 | break; |
| 4625 | } |
| 4626 | |
| 4627 | case value_t::null: |
| 4628 | case value_t::object: |
| 4629 | case value_t::array: |
| 4630 | case value_t::string: |
| 4631 | case value_t::boolean: |
| 4632 | case value_t::binary: |
| 4633 | case value_t::discarded: |
| 4634 | default: |
| 4635 | JSON_THROW(type_error::create(302, concat("type must be number, but is ", j.type_name()), &j)); |
| 4636 | } |
| 4637 | } |
| 4638 | |
| 4639 | template<typename BasicJsonType> |
| 4640 | inline void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) |