@complexity Linear.
@exceptionsafety No-throw guarantee: this function never throws exceptions.
@liveexample{The example demonstrates comparing several JSON types.,operator__less}
24236 {
24237 const auto lhs_type = lhs.type();
24238 const auto rhs_type = rhs.type();
24239
24240 if (lhs_type == rhs_type)
24241 {
24242 switch (lhs_type)
24243 {
24245
24246
24247 return (*lhs.m_value.array) < (*rhs.m_value.array);
24248
24250 return (*lhs.m_value.object) < (*rhs.m_value.object);
24251
24253 return false;
24254
24256 return (*lhs.m_value.string) < (*rhs.m_value.string);
24257
24259 return (lhs.m_value.boolean) < (rhs.m_value.boolean);
24260
24262 return (lhs.m_value.number_integer) < (rhs.m_value.number_integer);
24263
24265 return (lhs.m_value.number_unsigned) < (rhs.m_value.number_unsigned);
24266
24268 return (lhs.m_value.number_float) < (rhs.m_value.number_float);
24269
24271 return (*lhs.m_value.binary) < (*rhs.m_value.binary);
24272
24274 default:
24275 return false;
24276 }
24277 }
24278
24280 {
24281 return static_cast<number_float_t>(lhs.m_value.number_integer) < rhs.m_value.number_float;
24282 }
24283
24285 {
24286 return lhs.m_value.number_float <
static_cast<number_float_t>(rhs.m_value.number_integer);
24287 }
24288
24290 {
24291 return static_cast<number_float_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_float;
24292 }
24293
24295 {
24296 return lhs.m_value.number_float <
static_cast<number_float_t>(rhs.m_value.number_unsigned);
24297 }
24298
24300 {
24301 return lhs.m_value.number_integer <
static_cast<number_integer_t>(rhs.m_value.number_unsigned);
24302 }
24303
24305 {
24306 return static_cast<number_integer_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_integer;
24307 }
24308
24309
24310
24311
24313 }
NumberIntegerType number_integer_t
a type for a number (integer)
NumberFloatType number_float_t
a type for a number (floating-point)
friend bool operator<(const_reference lhs, const_reference rhs) noexcept
comparison: less than
@ number_integer
number value (signed integer)
@ discarded
discarded by the parser callback function
@ binary
binary array (ordered collection of bytes)
@ object
object (unordered set of name/value pairs)
@ number_float
number value (floating-point)
@ number_unsigned
number value (unsigned integer)
@ array
array (ordered collection of values)