Index: clang-tidy/modernize/MakeSharedCheck.h =================================================================== --- clang-tidy/modernize/MakeSharedCheck.h +++ clang-tidy/modernize/MakeSharedCheck.h @@ -34,6 +34,8 @@ protected: SmartPtrTypeMatcher getSmartPointerTypeMatcher() const override; + + bool isVersionSupported(const clang::LangOptions &LangOpts) const override; }; } // namespace modernize Index: clang-tidy/modernize/MakeSharedCheck.cpp =================================================================== --- clang-tidy/modernize/MakeSharedCheck.cpp +++ clang-tidy/modernize/MakeSharedCheck.cpp @@ -27,6 +27,10 @@ qualType().bind(PointerType))))))))); } +bool MakeSharedCheck::isVersionSupported(const clang::LangOptions &LangOpts) const { + return LangOpts.CPlusPlus11; +} + } // namespace modernize } // namespace tidy } // namespace clang Index: clang-tidy/modernize/MakeSmartPtrCheck.h =================================================================== --- clang-tidy/modernize/MakeSmartPtrCheck.h +++ clang-tidy/modernize/MakeSmartPtrCheck.h @@ -40,6 +40,9 @@ /// in this class. virtual SmartPtrTypeMatcher getSmartPointerTypeMatcher() const = 0; + /// Returns whether the C++ version is compatible with current check. + virtual bool isVersionSupported(const clang::LangOptions &LangOpts) const = 0; + static const char PointerType[]; static const char ConstructorCall[]; static const char ResetCall[]; Index: clang-tidy/modernize/MakeSmartPtrCheck.cpp =================================================================== --- clang-tidy/modernize/MakeSmartPtrCheck.cpp +++ clang-tidy/modernize/MakeSmartPtrCheck.cpp @@ -62,7 +62,7 @@ } void MakeSmartPtrCheck::registerPPCallbacks(CompilerInstance &Compiler) { - if (getLangOpts().CPlusPlus11) { + if (isVersionSupported(getLangOpts())) { Inserter.reset(new utils::IncludeInserter( Compiler.getSourceManager(), Compiler.getLangOpts(), IncludeStyle)); Compiler.getPreprocessor().addPPCallbacks(Inserter->CreatePPCallbacks()); @@ -70,7 +70,7 @@ } void MakeSmartPtrCheck::registerMatchers(ast_matchers::MatchFinder *Finder) { - if (!getLangOpts().CPlusPlus11) + if (!isVersionSupported(getLangOpts())) return; // Calling make_smart_ptr from within a member function of a type with a Index: clang-tidy/modernize/MakeUniqueCheck.h =================================================================== --- clang-tidy/modernize/MakeUniqueCheck.h +++ clang-tidy/modernize/MakeUniqueCheck.h @@ -31,6 +31,8 @@ protected: SmartPtrTypeMatcher getSmartPointerTypeMatcher() const override; + + bool isVersionSupported(const clang::LangOptions &LangOpts) const override; }; } // namespace modernize Index: clang-tidy/modernize/MakeUniqueCheck.cpp =================================================================== --- clang-tidy/modernize/MakeUniqueCheck.cpp +++ clang-tidy/modernize/MakeUniqueCheck.cpp @@ -36,6 +36,10 @@ equalsBoundNode(PointerType)))))))))))))))); } +bool MakeUniqueCheck::isVersionSupported(const clang::LangOptions &LangOpts) const { + return LangOpts.CPlusPlus14; +} + } // namespace modernize } // namespace tidy } // namespace clang