Remove the iter_impl<const basic_json> copy constructor and copy assignment

This commit is contained in:
HenryLee 2017-05-30 20:57:22 +10:00
parent 790e7ca9e9
commit 881cd3f420

View file

@ -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.
*/
@ -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.
@ -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