mirror of
https://github.com/nlohmann/json.git
synced 2024-08-23 21:42:29 +02:00
Merge branch 'develop' into feature/issue698
This commit is contained in:
commit
295d65ada7
28
src/json.hpp
28
src/json.hpp
|
@ -3497,23 +3497,18 @@ class primitive_iterator_t
|
||||||
/// return whether the iterator can be dereferenced
|
/// return whether the iterator can be dereferenced
|
||||||
constexpr bool is_begin() const noexcept
|
constexpr bool is_begin() const noexcept
|
||||||
{
|
{
|
||||||
return (m_it == begin_value);
|
return m_it == begin_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// return whether the iterator is at end
|
/// return whether the iterator is at end
|
||||||
constexpr bool is_end() const noexcept
|
constexpr bool is_end() const noexcept
|
||||||
{
|
{
|
||||||
return (m_it == end_value);
|
return m_it == end_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
||||||
{
|
{
|
||||||
return (lhs.m_it == rhs.m_it);
|
return lhs.m_it == rhs.m_it;
|
||||||
}
|
|
||||||
|
|
||||||
friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
||||||
{
|
|
||||||
return not(lhs == rhs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
||||||
|
@ -3521,21 +3516,6 @@ class primitive_iterator_t
|
||||||
return lhs.m_it < rhs.m_it;
|
return lhs.m_it < rhs.m_it;
|
||||||
}
|
}
|
||||||
|
|
||||||
friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
||||||
{
|
|
||||||
return lhs.m_it <= rhs.m_it;
|
|
||||||
}
|
|
||||||
|
|
||||||
friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
||||||
{
|
|
||||||
return lhs.m_it > rhs.m_it;
|
|
||||||
}
|
|
||||||
|
|
||||||
friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
|
|
||||||
{
|
|
||||||
return lhs.m_it >= rhs.m_it;
|
|
||||||
}
|
|
||||||
|
|
||||||
primitive_iterator_t operator+(difference_type i)
|
primitive_iterator_t operator+(difference_type i)
|
||||||
{
|
{
|
||||||
auto result = *this;
|
auto result = *this;
|
||||||
|
@ -3596,7 +3576,7 @@ class primitive_iterator_t
|
||||||
static constexpr difference_type end_value = begin_value + 1;
|
static constexpr difference_type end_value = begin_value + 1;
|
||||||
|
|
||||||
/// iterator as signed integer type
|
/// iterator as signed integer type
|
||||||
difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
|
difference_type m_it = std::numeric_limits<std::ptrdiff_t>::min();
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -225,6 +225,114 @@ TEST_CASE("iterators 1")
|
||||||
CHECK(*it == j_const);
|
CHECK(*it == j_const);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("additional tests")
|
||||||
|
{
|
||||||
|
SECTION("!(begin != begin)")
|
||||||
|
{
|
||||||
|
CHECK(not(j.begin() != j.begin()));
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("!(end != end)")
|
||||||
|
{
|
||||||
|
CHECK(not(j.end() != j.end()));
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin < end")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() < j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin <= end")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() <= j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end > begin")
|
||||||
|
{
|
||||||
|
CHECK(j.end() > j.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end >= begin")
|
||||||
|
{
|
||||||
|
CHECK(j.end() >= j.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end == end")
|
||||||
|
{
|
||||||
|
CHECK(j.end() == j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end <= end")
|
||||||
|
{
|
||||||
|
CHECK(j.end() <= j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin == begin")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() == j.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin <= begin")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() <= j.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin >= begin")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() >= j.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("!(begin == end)")
|
||||||
|
{
|
||||||
|
CHECK(not(j.begin() == j.end()));
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin != end")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() != j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin+1 == end")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() + 1 == j.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin == end-1")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() == j.end() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin != end+1")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() != j.end() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end != end+1")
|
||||||
|
{
|
||||||
|
CHECK(j.end() != j.end() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin+1 != begin+2")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() + 1 != j.begin() + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin+1 < begin+2")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() + 1 < j.begin() + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("begin+1 <= begin+2")
|
||||||
|
{
|
||||||
|
CHECK(j.begin() + 1 <= j.begin() + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("end+1 != end+2")
|
||||||
|
{
|
||||||
|
CHECK(j.end() + 1 != j.end() + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SECTION("key/value")
|
SECTION("key/value")
|
||||||
{
|
{
|
||||||
auto it = j.begin();
|
auto it = j.begin();
|
||||||
|
|
Loading…
Reference in a new issue