A minor mistake(such as a misspelling, leaving out a `const`, using `&` instead ot `&&`, or leaving out a special function) can lead to errors or warnings.
To avoid the tedium and the possibility of errors, try to follow the [rule of zero](#Rc-zero).
##### Enforcement
(Simple) A class should have a declaration (even a `=delete` one) for either all or none of the special functions.
@ -10715,7 +10733,7 @@ Also, `#` and `##` encoutages the definition and use of macros:
#define CAT(a,b) a ## b
#define STRINGIFY(a) #a
void f(int x, int y))
void f(int x, int y)
{
string CAT(x,y) = "asdf"; // BAD: hard for tools to handle (and ugly)
string sx2 = STRINGIFY(x);
@ -10737,7 +10755,7 @@ There are workarounds for low-level string manipulation using macros. For exampl