17 #include <daw/daw_attributes.h>
20 #include <type_traits>
24 namespace json_details {
25 template<
typename ParseState,
bool>
34 template<
typename ParseState>
47 ParseState *pd ) noexcept
60 template<
typename JsonMember,
typename ParseState,
bool KnownBounds>
63 can_random_v<KnownBounds>> {
82 if constexpr( not KnownBounds ) {
98 return parse_value<element_t>(
105 ErrorReason::UnexpectedEndOfData,
116 ErrorReason::UnexpectedEndOfData,
122 ErrorReason::AttemptToAccessPastEndOfValue,
126 if constexpr( not KnownBounds ) {
137 ErrorReason::AttemptToAccessPastEndOfValue,
146 friend inline constexpr
bool
152 friend inline constexpr
bool
155 return not( lhs == rhs );
#define daw_json_assert_weak(Bool,...)
Definition: daw_json_assert.h:189
typename JsonMember::without_name without_name
Definition: daw_json_traits.h:102
std::integral_constant< JsonParseTypes, v > ParseTag
Definition: daw_json_enums.h:106
Definition: daw_from_json.h:22
Definition: daw_json_arrow_proxy.h:16
constexpr difference_type operator-(json_parse_array_iterator_base const &rhs) const
Definition: daw_json_parse_array_iterator.h:52
std::random_access_iterator_tag iterator_category
Definition: daw_json_parse_array_iterator.h:37
std::ptrdiff_t difference_type
Definition: daw_json_parse_array_iterator.h:38
constexpr json_parse_array_iterator_base() noexcept=default
Definition: daw_json_parse_array_iterator.h:26
static constexpr bool has_counter
Definition: daw_json_parse_array_iterator.h:29
std::ptrdiff_t difference_type
Definition: daw_json_parse_array_iterator.h:28
ParseState * parse_state
Definition: daw_json_parse_array_iterator.h:31
std::input_iterator_tag iterator_category
Definition: daw_json_parse_array_iterator.h:27
Definition: daw_json_parse_array_iterator.h:63
constexpr friend bool operator==(json_parse_array_iterator const &lhs, json_parse_array_iterator const &rhs)
Definition: daw_json_parse_array_iterator.h:147
typename base::iterator_category iterator_category
Definition: daw_json_parse_array_iterator.h:68
typename JsonMember::json_element_t::without_name element_t
Definition: daw_json_parse_array_iterator.h:69
std::size_t size_type
Definition: daw_json_parse_array_iterator.h:75
value_type reference
Definition: daw_json_parse_array_iterator.h:71
typename element_t::parse_to_t value_type
Definition: daw_json_parse_array_iterator.h:70
constexpr json_parse_array_iterator(parse_state_t &r)
Definition: daw_json_parse_array_iterator.h:79
constexpr json_parse_array_iterator end() const
Definition: daw_json_parse_array_iterator.h:162
constexpr json_parse_array_iterator & begin()
Definition: daw_json_parse_array_iterator.h:158
constexpr json_parse_array_iterator()=default
typename base::difference_type difference_type
Definition: daw_json_parse_array_iterator.h:74
ParseState parse_state_t
Definition: daw_json_parse_array_iterator.h:73
constexpr friend bool operator!=(json_parse_array_iterator const &lhs, json_parse_array_iterator const &rhs)
Definition: daw_json_parse_array_iterator.h:153
constexpr DAW_ATTRIB_INLINE json_parse_array_iterator & operator++()
Definition: daw_json_parse_array_iterator.h:103
constexpr DAW_ATTRIB_INLINE value_type operator*()
Definition: daw_json_parse_array_iterator.h:93
#define DAW_JSON_VER
Definition: version.h:11