llvm-project/clang-tools-extra/docs
Roman Lebedev 6cfa38f1f1 [clang-tidy] Non-private member variables in classes (MISRA, CppCoreGuidelines, HICPP)
Summary:
Finds classes that not only contain the data (non-static member variables),
but also have logic (non-static member functions), and diagnoses all member
variables that have any other scope other than `private`. They should be
made `private`, and manipulated exclusively via the member functions.

Optionally, classes with all member variables being `public` could be
ignored, and optionally all `public` member variables could be ignored.

Options
-------

* IgnoreClassesWithAllMemberVariablesBeingPublic

  Allows to completely ignore classes if **all** the member variables in that
  class have `public` visibility.

* IgnorePublicMemberVariables

  Allows to ignore (not diagnose) **all** the member variables with `public`
  visibility scope.

References:
* MISRA 11-0-1 Member data in non-POD class types shall be private.
* https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c2-use-class-if-the-class-has-an-invariant-use-struct-if-the-data-members-can-vary-independently
* https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rc-private
* https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rh-protected

Reviewers: JonasToth, aaron.ballman, alexfh, hokein, xazax.hun

Reviewed By: aaron.ballman

Subscribers: Eugene.Zelenko, zinovy.nis, cfe-commits, rnkovacs, nemanjai, mgorny, xazax.hun, kbarton

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D52771

llvm-svn: 344757
2018-10-18 20:16:44 +00:00
..
clang-tidy [clang-tidy] Non-private member variables in classes (MISRA, CppCoreGuidelines, HICPP) 2018-10-18 20:16:44 +00:00
CMakeLists.txt docs: Fix Sphinx detection with out-of-tree builds 2017-05-09 11:11:52 +00:00
ModularizeUsage.rst Remove trailing whitespace in docs and clang-tidy sources. 2016-12-13 16:38:45 +00:00
README.txt
ReleaseNotes.rst [clang-tidy] Non-private member variables in classes (MISRA, CppCoreGuidelines, HICPP) 2018-10-18 20:16:44 +00:00
clang-doc.rst [docs] Adding clang-doc to CTE toctree to fix docs build error 2018-03-12 21:39:01 +00:00
clang-modernize.rst Orphaning these RST files; each one is retained only for link backwards compatibility. 2015-12-28 19:59:15 +00:00
clang-rename.rst clang-rename: add new -force option 2017-06-02 09:32:28 +00:00
clang-tidy.rst [clang-tidy] Use relative URL for redirection. 2016-01-27 11:37:12 +00:00
clangd.rst [docs] Fix links in Clangd documentation 2018-09-28 09:32:47 +00:00
conf.py Update docs version and clear release notes after 8.0.0 version bump 2018-08-01 14:09:00 +00:00
cpp11-migrate.rst Orphaning these RST files; each one is retained only for link backwards compatibility. 2015-12-28 19:59:15 +00:00
doxygen-mainpage.dox [docs] Fix docs to work with doxygen 1.8.11 2016-03-03 10:45:59 +00:00
doxygen.cfg.in [clang-tools-extra] Cleanup documentation routine 2018-07-04 10:18:03 +00:00
include-fixer.rst [docs] Remove doubled spaces 2016-11-17 14:26:45 +00:00
index.rst [docs] Adding clang-doc to CTE toctree to fix docs build error 2018-03-12 21:39:01 +00:00
make.bat
modularize.rst Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
pp-trace.rst Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00

README.txt

-------------------------------------------------------------
Documentation for the tools of clang-tools-extra repo project
-------------------------------------------------------------

Sphinx and doxygen documentation is generated by executing make.

Sphinx html files can be generated separately using make html.

Doxygen html files can also be generated using make doxygen.

The generated documentation will be placed in _build/html.