! @brief returns the number of elements Returns the number of elements in a JSON value. @return The return value depends on the different types and is defined as follows: Value type | return value ----------- | ------------- null | `0` boolean | `1` string | `1` number | `1`
| 21575 | @since version 1.0.0 |
| 21576 | */ |
| 21577 | size_type size() const noexcept |
| 21578 | { |
| 21579 | switch (m_type) |
| 21580 | { |
| 21581 | case value_t::null: |
| 21582 | { |
| 21583 | // null values are empty |
| 21584 | return 0; |
| 21585 | } |
| 21586 | |
| 21587 | case value_t::array: |
| 21588 | { |
| 21589 | // delegate call to array_t::size() |
| 21590 | return m_value.array->size(); |
| 21591 | } |
| 21592 | |
| 21593 | case value_t::object: |
| 21594 | { |
| 21595 | // delegate call to object_t::size() |
| 21596 | return m_value.object->size(); |
| 21597 | } |
| 21598 | |
| 21599 | default: |
| 21600 | { |
| 21601 | // all other types have size 1 |
| 21602 | return 1; |
| 21603 | } |
| 21604 | } |
| 21605 | } |
| 21606 | |
| 21607 | /*! |
| 21608 | @brief returns the maximum possible number of elements |