Line data Source code
1 : //===--- ExplicitConstructorCheck.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_GOOGLE_EXPLICITCONSTRUCTORCHECK_H
11 : #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_GOOGLE_EXPLICITCONSTRUCTORCHECK_H
12 :
13 : #include "../ClangTidy.h"
14 :
15 : namespace clang {
16 : namespace tidy {
17 : namespace google {
18 :
19 : /// Checks that all single-argument constructors are explicit.
20 : ///
21 : /// See https://google.github.io/styleguide/cppguide.html#Explicit_Constructors
22 : class ExplicitConstructorCheck : public ClangTidyCheck {
23 : public:
24 : ExplicitConstructorCheck(StringRef Name, ClangTidyContext *Context)
25 0 : : ClangTidyCheck(Name, Context) {}
26 : void registerMatchers(ast_matchers::MatchFinder *Finder) override;
27 : void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
28 : };
29 :
30 : } // namespace google
31 : } // namespace tidy
32 : } // namespace clang
33 :
34 : #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_GOOGLE_EXPLICITCONSTRUCTORCHECK_H
|