1 #pragma once 2 3 #include <nlohmann/detail/iterators/primitive_iterator.hpp> 4 5 namespace nlohmann 6 { 7 namespace detail 8 { 9 /*! 10 @brief an iterator value 11 12 @note This structure could easily be a union, but MSVC currently does not allow 13 unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. 14 */ 15 template<typename BasicJsonType> struct internal_iterator 16 { 17 /// iterator for JSON objects 18 typename BasicJsonType::object_t::iterator object_iterator {}; 19 /// iterator for JSON arrays 20 typename BasicJsonType::array_t::iterator array_iterator {}; 21 /// generic iterator for all other types 22 primitive_iterator_t primitive_iterator {}; 23 }; 24 } // namespace detail 25 } // namespace nlohmann 26