summaryrefslogtreecommitdiff
path: root/include/lib/modernjson/detail/iterators/internal_iterator.hpp
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-09-17 11:10:12 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-09-17 11:10:12 +0200
commit276b9a93c2e3b9ac58a9ddb5fff4c8299c459222 (patch)
tree8b39c09a58a8c3225b234b2b69af08a76d31f9a8 /include/lib/modernjson/detail/iterators/internal_iterator.hpp
parent99cea89d798b61398adf33cbc57c11d985ddab77 (diff)
add nlohmann modenjson
Diffstat (limited to 'include/lib/modernjson/detail/iterators/internal_iterator.hpp')
-rw-r--r--include/lib/modernjson/detail/iterators/internal_iterator.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/lib/modernjson/detail/iterators/internal_iterator.hpp b/include/lib/modernjson/detail/iterators/internal_iterator.hpp
new file mode 100644
index 0000000..95f056d
--- /dev/null
+++ b/include/lib/modernjson/detail/iterators/internal_iterator.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <lib/modernjson/detail/iterators/primitive_iterator.hpp>
+
+namespace nlohmann
+{
+namespace detail
+{
+/*!
+@brief an iterator value
+
+@note This structure could easily be a union, but MSVC currently does not allow
+unions members with complex constructors, see https://github.com/nlohmann/json/pull/105.
+*/
+template<typename BasicJsonType> struct internal_iterator
+{
+ /// iterator for JSON objects
+ typename BasicJsonType::object_t::iterator object_iterator {};
+ /// iterator for JSON arrays
+ typename BasicJsonType::array_t::iterator array_iterator {};
+ /// generic iterator for all other types
+ primitive_iterator_t primitive_iterator {};
+};
+}
+}