Documentation for bugprone-inaccurate-erase: added an example of a bug that this...
authorDmitri Gribenko <gribozavr@gmail.com>
Wed, 8 May 2019 12:02:31 +0000 (12:02 +0000)
committerDmitri Gribenko <gribozavr@gmail.com>
Wed, 8 May 2019 12:02:31 +0000 (12:02 +0000)
Reviewers: alexfh

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D61644

llvm-svn: 360247

clang-tools-extra/docs/clang-tidy/checks/bugprone-inaccurate-erase.rst

index 7df47b0..b2dcdd5 100644 (file)
@@ -11,3 +11,19 @@ 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());