blob: 1daa1a8575edb17744ce052498971ce9b65fae89 [file] [log] [blame]
Malcolm Parsonse293eab2016-11-10 16:46:59 +00001//===--- UseEqualsDeleteCheck.h - clang-tidy---------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DELETE_H
11#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DELETE_H
12
13#include "../ClangTidy.h"
14
15namespace clang {
16namespace tidy {
17namespace modernize {
18
19/// \brief Mark unimplemented private special member functions with '= delete'.
20/// \code
21/// struct A {
22/// private:
23/// A(const A&);
24/// A& operator=(const A&);
25/// };
26/// \endcode
27/// Is converted to:
28/// \code
29/// struct A {
30/// private:
31/// A(const A&) = delete;
32/// A& operator=(const A&) = delete;
33/// };
34/// \endcode
35///
36/// For the user-facing documentation see:
37/// http://clang.llvm.org/extra/clang-tidy/checks/modernize-use-equals-delete.html
38class UseEqualsDeleteCheck : public ClangTidyCheck {
39public:
40 UseEqualsDeleteCheck(StringRef Name, ClangTidyContext *Context)
41 : ClangTidyCheck(Name, Context) {}
42 void registerMatchers(ast_matchers::MatchFinder *Finder) override;
43 void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
44};
45
46} // namespace modernize
47} // namespace tidy
48} // namespace clang
49
50#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_USE_EQUALS_DELETE_H