diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 7c1279f..13e2664 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -57,6 +57,7 @@ Supporting sections: * [Appendix A: Libraries](#S-libraries) * [Appendix B: Modernizing code](#S-modernizing) * [Appendix C: Discussion](#S-discussion) +* [Appendix D: Tools support](#S-tools) * [Glossary](#S-glossary) * [To-do: Unclassified proto-rules](#S-unclassified) @@ -426,6 +427,7 @@ Supporting sections: * [Appendix A: Libraries](#S-libraries) * [Appendix B: Modernizing code](#S-modernizing) * [Appendix C: Discussion](#S-discussion) +* [Appendix D: Tools support](#S-tools) * [Glossary](#S-glossary) * [To-do: Unclassified proto-rules](#S-unclassified) @@ -2613,7 +2615,7 @@ Member functions defined in-class are `inline` by default. ##### Exception -Template functions (incl. template member functions) must be in headers and therefore inline. +Template functions (incl. template member functions) are normally defined in headers and therefore inline. ##### Enforcement @@ -21140,6 +21142,20 @@ It is common to need an initial set of elements. When is a class a container? ??? +# Appendix D: Supporting tools + +This section contains a list of tools that directly support adoption of the C++ Core Guidelines. This list is not intended to be an exhaustive list of tools +that are helpful in writing good C++ code. If a tool is designed specifically to support and links to the C++ Core Guidelines it is a candidate for inclusion. +In particular, here we present further rationale, longer examples, and discussions of alternatives. + +### Tools: [Clang-tidy](http://clang.llvm.org/extra/clang-tidy/checks/list.html) + +Clang-tidy has a set of rules that specifically enforce the C++ Core Guidelines. These rules are named in the pattern `cppcoreguidelines-*`. + +### Tools: [CppCoreCheck](https://docs.microsoft.com/en-us/visualstudio/code-quality/using-the-cpp-core-guidelines-checkers) + +The Microsoft compiler's C++ code analysis contains a set of rules specifically aimed at enforcement of the C++ Core Guidelines. + # Glossary A relatively informal definition of terms used in the guidelines