diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 3f804e4..196a722 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -5476,9 +5476,9 @@ Because we defined the destructor, we must define the copy and move operations. ~Tracer2() { cerr << "exiting " << message << '\n'; } Tracer2(const Tracer2& a) : message{a.message} {} - Tracer2& operator=(const Tracer2& a) { message = a.message; } + Tracer2& operator=(const Tracer2& a) { message = a.message; return *this; } Tracer2(Tracer2&& a) :message{a.message} {} - Tracer2& operator=(Tracer2&& a) { message = a.message; } + Tracer2& operator=(Tracer2&& a) { message = a.message; return *this; } }; Writing out the bodies of the copy and move operations is verbose, tedious, and error-prone. A compiler does it better.