From 11035098956f0a7d2c5815a4225e8220e441fa5a Mon Sep 17 00:00:00 2001 From: Bjarne Stroustrup Date: Sat, 13 Oct 2018 10:55:06 -0400 Subject: [PATCH] A philosophical rule/caution --- CppCoreGuidelines.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 9187170..2df538f 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -314,6 +314,12 @@ The rules are not value-neutral. They are meant to make code simpler and more correct/safer than most existing C++ code, without loss of performance. They are meant to inhibit perfectly valid C++ code that correlates with errors, spurious complexity, and poor performance. +The rules are not precise to the point where a person (or machine) can follow them blindly. +The enforcement parts try to be that, but we would rather leave a rule or a definition a bit vague +and open to interpretation than to specify something precisely and wrong. +Sometimes, precision comes only with time and experience. +Design is not (yet) a form of Math. + The rules are not perfect. A rule can do harm by prohibiting something that is useful in a given situation. A rule can do harm by failing to prohibit something that enables a serious error in a given situation.