https://github.com/carlosgalvezp created https://github.com/llvm/llvm-project/pull/65231:
…-delete So the purpose of the check is more clear. Update examples code to show compliant code. >From 0ffc7aab2f385babd81b57e8116b0433d85cfaf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20G=C3=A1lvez?= <carlos.gal...@zenseact.com> Date: Sun, 3 Sep 2023 18:24:55 +0000 Subject: [PATCH] [clang-tidy][NFC][doc] Improve documentation for modernize-use-equals-delete So the purpose of the check is more clear. Update examples code to show compliant code. --- .../checks/modernize/use-equals-delete.rst | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/modernize/use-equals-delete.rst b/clang-tools-extra/docs/clang-tidy/checks/modernize/use-equals-delete.rst index c3de904e253802..47de4185667a3e 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/modernize/use-equals-delete.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/modernize/use-equals-delete.rst @@ -3,22 +3,34 @@ modernize-use-equals-delete =========================== +Prior to C++11, the only way to "delete" a given function was to make it +``private`` and without definition, to generate a compiler error (calling +private function) or a linker error (undefined reference). + +After C++11, the more idiomatic way to achieve this is by marking the functions +as ``= delete``, and keeping them in the ``public`` section. + This check marks unimplemented private special member functions with ``= delete``. +Additionally, it warns about ``delete``'d functions still kept in the ``private`` +section, that should be moved to the ``public`` one instead. + To avoid false-positives, this check only applies in a translation unit that has -all other member functions implemented. +all other member functions implemented. The check will generate partial fixes +by adding ``= delete``, but the user must manually move it to the ``public`` +section. .. code-block:: c++ - struct A { - private: + // Example: bad + class A { + private: A(const A&); A& operator=(const A&); }; - // becomes - - struct A { - private: + // Example: good + class A { + public: A(const A&) = delete; A& operator=(const A&) = delete; }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits