1// __ _____ _____ _____
2// __| | __| | | | JSON for Modern C++
3// | | |__ | | | | | | version 3.11.3
4// |_____|_____|_____|_|___| https://github.com/nlohmann/json
5//
6// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
7// SPDX-License-Identifier: MIT
8
9#pragma once
10
11#include <nlohmann/detail/abi_macros.hpp>
12#include <nlohmann/detail/iterators/primitive_iterator.hpp>
13
14NLOHMANN_JSON_NAMESPACE_BEGIN
15namespace detail
16{
17
18/*!
19@brief an iterator value
20
21@note This structure could easily be a union, but MSVC currently does not allow
22unions members with complex constructors, see https://github.com/nlohmann/json/pull/105.
23*/
24template<typename BasicJsonType> struct internal_iterator
25{
26 /// iterator for JSON objects
27 typename BasicJsonType::object_t::iterator object_iterator {};
28 /// iterator for JSON arrays
29 typename BasicJsonType::array_t::iterator array_iterator {};
30 /// generic iterator for all other types
31 primitive_iterator_t primitive_iterator {};
32};
33
34} // namespace detail
35NLOHMANN_JSON_NAMESPACE_END
36