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 | |
14 | NLOHMANN_JSON_NAMESPACE_BEGIN |
15 | namespace 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 |
22 | unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. |
23 | */ |
24 | template<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 |
35 | NLOHMANN_JSON_NAMESPACE_END |
36 |