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