Skip to content

Commit

Permalink
Remove the iter_impl<const basic_json> copy constructor and copy assi…
Browse files Browse the repository at this point in the history
…gnment
  • Loading branch information
HenryRLee committed May 30, 2017
1 parent 790e7ca commit 881cd3f
Showing 1 changed file with 7 additions and 33 deletions.
40 changes: 7 additions & 33 deletions src/json.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8054,11 +8054,12 @@ class basic_json
}

/*!
@note The conventional copy constructor is not defined. It is replaced
by either of the following two converting constructors.
They support copy from iterator to iterator,
copy from const iterator to const iterator,
and conversion from iterator to const iterator.
@note The conventional copy constructor and copy assignment are
implicitly defined.
Combined with the following converting constructor and assigment,
they support: copy from iterator to iterator,
copy from const iterator to const iterator,
and conversion from iterator to const iterator.
However conversion from const iterator to iterator is not defined.
*/

Expand All @@ -8072,16 +8073,7 @@ class basic_json
{}

/*!
@brief converting constructor
@param[in] other const iterator to copy from
@note It is not checked whether @a other is initialized.
*/
iter_impl<const basic_json>(const iter_impl<const basic_json>& other) noexcept
: m_object(other.m_object), m_it(other.m_it)
{}

/*!
@brief copy assignment
@brief converting assignment
@param[in,out] other non-const iterator to copy from
@return const/non-const iterator
@note It is not checked whether @a other is initialized.
Expand All @@ -8098,24 +8090,6 @@ class basic_json
return *this;
}

/*!
@brief copy assignment
@param[in,out] other const iterator to copy from
@return const iterator
@note It is not checked whether @a other is initialized.
*/
iter_impl<const basic_json>& operator=(iter_impl<const basic_json> other) noexcept(
std::is_nothrow_move_constructible<pointer>::value and
std::is_nothrow_move_assignable<pointer>::value and
std::is_nothrow_move_constructible<struct internal_iterator>::value and
std::is_nothrow_move_assignable<struct internal_iterator>::value
)
{
std::swap(m_object, other.m_object);
std::swap(m_it, other.m_it);
return *this;
}

private:
/*!
@brief set the iterator to the first value
Expand Down

0 comments on commit 881cd3f

Please sign in to comment.