Make the indirection and dereference operators of iterator const
fixes #233
This commit is contained in:
parent
170b70f082
commit
2197f5f0a6
3 changed files with 15 additions and 4 deletions
|
@ -7000,13 +7000,13 @@ class basic_json
|
||||||
}
|
}
|
||||||
|
|
||||||
/// return a reference to the value pointed to by the iterator
|
/// return a reference to the value pointed to by the iterator
|
||||||
reference operator*()
|
reference operator*() const
|
||||||
{
|
{
|
||||||
return const_cast<reference>(base_iterator::operator*());
|
return const_cast<reference>(base_iterator::operator*());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// dereference the iterator
|
/// dereference the iterator
|
||||||
pointer operator->()
|
pointer operator->() const
|
||||||
{
|
{
|
||||||
return const_cast<pointer>(base_iterator::operator->());
|
return const_cast<pointer>(base_iterator::operator->());
|
||||||
}
|
}
|
||||||
|
|
|
@ -7000,13 +7000,13 @@ class basic_json
|
||||||
}
|
}
|
||||||
|
|
||||||
/// return a reference to the value pointed to by the iterator
|
/// return a reference to the value pointed to by the iterator
|
||||||
reference operator*()
|
reference operator*() const
|
||||||
{
|
{
|
||||||
return const_cast<reference>(base_iterator::operator*());
|
return const_cast<reference>(base_iterator::operator*());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// dereference the iterator
|
/// dereference the iterator
|
||||||
pointer operator->()
|
pointer operator->() const
|
||||||
{
|
{
|
||||||
return const_cast<pointer>(base_iterator::operator->());
|
return const_cast<pointer>(base_iterator::operator->());
|
||||||
}
|
}
|
||||||
|
|
|
@ -12407,5 +12407,16 @@ TEST_CASE("regression tests")
|
||||||
CHECK(j3b.dump() == "1E04");
|
CHECK(j3b.dump() == "1E04");
|
||||||
CHECK(j3c.dump() == "1e04");
|
CHECK(j3c.dump() == "1e04");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("issue #233 - Can't use basic_json::iterator as a base iterator for std::move_iterator")
|
||||||
|
{
|
||||||
|
json source = {"a", "b", "c"};
|
||||||
|
json expected = {"a", "b"};
|
||||||
|
json dest;
|
||||||
|
|
||||||
|
std::copy_n(std::make_move_iterator(source.begin()), 2, std::back_inserter(dest));
|
||||||
|
|
||||||
|
CHECK(dest == expected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue