forked from OSchip/llvm-project
30 lines
841 B
ReStructuredText
30 lines
841 B
ReStructuredText
.. title:: clang-tidy - bugprone-inaccurate-erase
|
|
|
|
bugprone-inaccurate-erase
|
|
=========================
|
|
|
|
|
|
Checks for inaccurate use of the ``erase()`` method.
|
|
|
|
Algorithms like ``remove()`` do not actually remove any element from the
|
|
container but return an iterator to the first redundant element at the end
|
|
of the container. These redundant elements must be removed using the
|
|
``erase()`` method. This check warns when not all of the elements will be
|
|
removed due to using an inappropriate overload.
|
|
|
|
For example, the following code erases only one element:
|
|
|
|
.. code-block:: c++
|
|
|
|
std::vector<int> xs;
|
|
...
|
|
xs.erase(std::remove(xs.begin(), xs.end(), 10));
|
|
|
|
Call the two-argument overload of ``erase()`` to remove the subrange:
|
|
|
|
.. code-block:: c++
|
|
|
|
std::vector<int> xs;
|
|
...
|
|
xs.erase(std::remove(xs.begin(), xs.end(), 10), xs.end());
|