! @brief set the iterator past the last value @pre The iterator is initialized; i.e. `m_object != nullptr`. */
| 9513 | @pre The iterator is initialized; i.e. `m_object != nullptr`. |
| 9514 | */ |
| 9515 | void set_end() noexcept |
| 9516 | { |
| 9517 | assert(m_object != nullptr); |
| 9518 | |
| 9519 | switch (m_object->m_type) |
| 9520 | { |
| 9521 | case value_t::object: |
| 9522 | { |
| 9523 | m_it.object_iterator = m_object->m_value.object->end(); |
| 9524 | break; |
| 9525 | } |
| 9526 | |
| 9527 | case value_t::array: |
| 9528 | { |
| 9529 | m_it.array_iterator = m_object->m_value.array->end(); |
| 9530 | break; |
| 9531 | } |
| 9532 | |
| 9533 | default: |
| 9534 | { |
| 9535 | m_it.primitive_iterator.set_end(); |
| 9536 | break; |
| 9537 | } |
| 9538 | } |
| 9539 | } |
| 9540 | |
| 9541 | public: |
| 9542 | /*! |