From 7ad62600f1a110d64126a16199d47611ebd00044 Mon Sep 17 00:00:00 2001 From: Sergey Zubkov Date: Thu, 6 Oct 2022 18:57:36 -0400 Subject: [PATCH] C.65: more explicit about the badness of bad example closes #1892 --- CppCoreGuidelines.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index a4fde07..6c5cc5a 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -6366,7 +6366,7 @@ There is no known general way of avoiding an `if (this == &a) return *this;` tes The ISO standard guarantees only a "valid but unspecified" state for the standard-library containers. Apparently this has not been a problem in about 10 years of experimental and production use. Please contact the editors if you find a counter example. The rule here is more caution and insists on complete safety. -##### Example +##### Example, bad Here is a way to move a pointer without a test (imagine it as code in the implementation a move assignment): @@ -6374,7 +6374,7 @@ Here is a way to move a pointer without a test (imagine it as code in the implem T* temp = other.ptr; other.ptr = nullptr; delete ptr; - ptr = temp; + ptr = temp; // in case of self-move, this->ptr is now invalid ##### Enforcement