• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //     __ _____ _____ _____
2 //  __|  |   __|     |   | |  JSON for Modern C++
3 // |  |  |__   |  |  | | | |  version 3.11.2
4 // |_____|_____|_____|_|___|  https://github.com/nlohmann/json
5 //
6 // SPDX-FileCopyrightText: 2013-2022 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