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
|
||||
reference operator*()
|
||||
reference operator*() const
|
||||
{
|
||||
return const_cast<reference>(base_iterator::operator*());
|
||||
}
|
||||
|
||||
/// dereference the iterator
|
||||
pointer operator->()
|
||||
pointer operator->() const
|
||||
{
|
||||
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
|
||||
reference operator*()
|
||||
reference operator*() const
|
||||
{
|
||||
return const_cast<reference>(base_iterator::operator*());
|
||||
}
|
||||
|
||||
/// dereference the iterator
|
||||
pointer operator->()
|
||||
pointer operator->() const
|
||||
{
|
||||
return const_cast<pointer>(base_iterator::operator->());
|
||||
}
|
||||
|
|
|
@ -12407,5 +12407,16 @@ TEST_CASE("regression tests")
|
|||
CHECK(j3b.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