reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  201 CLASSTEMPLATE(ClassTemplate, RedeclarableTemplateDecl)
tools/clang/include/clang/AST/ASTMutationListener.h
   17   class ClassTemplateDecl;
tools/clang/include/clang/AST/DeclCXX.h
   58 class ClassTemplateDecl;
tools/clang/include/clang/AST/DeclTemplate.h
   45 class ClassTemplateDecl;
tools/clang/include/clang/Sema/Sema.h
   98   class ClassTemplateDecl;
tools/clang/tools/libclang/CXIndexDataConsumer.h
   23   class ClassTemplateDecl;
tools/lldb/include/lldb/Core/ClangForward.h
   27 class ClassTemplateDecl;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTDumper.h
   50   void VisitClassTemplateDecl(const ClassTemplateDecl *D);
tools/clang/include/clang/AST/ASTMutationListener.h
   61   virtual void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD,
tools/clang/include/clang/AST/ASTNodeTraverser.h
  448   void dumpTemplateDecl(const TemplateDecl *D) {
  475   void VisitClassTemplateDecl(const ClassTemplateDecl *D) {
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/DeclBase.h
 2491     return To::classofKind(Val.getDeclKind());
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h
  456   llvm::PointerUnion<ClassTemplateDecl *, MemberSpecializationInfo *>
 1411   ClassTemplateDecl *getDescribedClassTemplate() const;
 1413   void setDescribedClassTemplate(ClassTemplateDecl *Template);
tools/clang/include/clang/AST/DeclFriend.h
  154       if (const auto *CTD = dyn_cast<ClassTemplateDecl>(ND))
  154       if (const auto *CTD = dyn_cast<ClassTemplateDecl>(ND))
tools/clang/include/clang/AST/DeclTemplate.h
 1656   llvm::PointerUnion<ClassTemplateDecl *, SpecializedPartialSpecialization *>
 1691                                   ClassTemplateDecl *SpecializedTemplate,
 1704          ClassTemplateDecl *SpecializedTemplate,
 1724   ClassTemplateDecl *getSpecializedTemplate() const;
 1782   llvm::PointerUnion<ClassTemplateDecl *,
 1794   llvm::PointerUnion<ClassTemplateDecl *,
 1801     return SpecializedTemplate.get<ClassTemplateDecl*>();
 1838   void setInstantiationOf(ClassTemplateDecl *TemplDecl) {
 1926                                          ClassTemplateDecl *SpecializedTemplate,
 1945          ClassTemplateDecl *SpecializedTemplate,
 2128   static ClassTemplateDecl *Create(ASTContext &C, DeclContext *DC,
 2135   static ClassTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID);
 2146   ClassTemplateDecl *getCanonicalDecl() override {
 2147     return cast<ClassTemplateDecl>(
 2150   const ClassTemplateDecl *getCanonicalDecl() const {
 2151     return cast<ClassTemplateDecl>(
 2157   ClassTemplateDecl *getPreviousDecl() {
 2158     return cast_or_null<ClassTemplateDecl>(
 2161   const ClassTemplateDecl *getPreviousDecl() const {
 2162     return cast_or_null<ClassTemplateDecl>(
 2167   ClassTemplateDecl *getMostRecentDecl() {
 2168     return cast<ClassTemplateDecl>(
 2171   const ClassTemplateDecl *getMostRecentDecl() const {
 2175   ClassTemplateDecl *getInstantiatedFromMemberTemplate() const {
 2176     return cast_or_null<ClassTemplateDecl>(
 3089   return TD && (isa<ClassTemplateDecl>(TD) ||
tools/clang/include/clang/AST/JSONNodeDumper.h
  390   void writeTemplateDecl(const TemplateDecl *TD, bool DumpExplicitInst) {
  417   void VisitClassTemplateDecl(const ClassTemplateDecl *CTD) {
tools/clang/include/clang/AST/RecursiveASTVisitor.h
 1658     ClassTemplateDecl *D) {
tools/clang/include/clang/AST/TextNodeDumper.h
  322   void VisitClassTemplateDecl(const ClassTemplateDecl *D);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
  398 extern const internal::VariadicDynCastAllOfMatcher<Decl, ClassTemplateDecl>
  648   const ClassTemplateDecl* Decl = Node.getSpecializedTemplate();
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1009   bool matchesDescendantOf(const T &Node,
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1014                   std::is_base_of<Stmt, T>::value ||
 1015                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1016                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1018                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1146     template <typename To> operator Matcher<To>() const {
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
 1426   bool matches(const T &Node, ASTMatchFinder *Finder,
 1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
 1446   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/Sema.h
  907   ClassTemplateDecl *StdInitializerList;
  911   ClassTemplateDecl *StdCoroutineTraitsCache;
 9171   ClassTemplateDecl *lookupCoroutineTraits(SourceLocation KwLoc,
tools/clang/include/clang/Sema/Template.h
  430     SmallVector<std::pair<ClassTemplateDecl *,
  502       ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *>>::iterator;
  554                                               ClassTemplateDecl *ClassTemplate,
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/include/clang/Serialization/ASTWriter.h
  717       const ClassTemplateDecl *TD,
tools/clang/lib/AST/ASTContext.cpp
  330     if (const ClassTemplateDecl *CTD = CRD->getDescribedClassTemplate())
  338       llvm::PointerUnion<ClassTemplateDecl *,
  341       return PU.is<ClassTemplateDecl *>()
  342                  ? *static_cast<const Decl *>(PU.get<ClassTemplateDecl *>())
tools/clang/lib/AST/ASTDumper.cpp
  127 void ASTDumper::dumpTemplateDecl(const TemplateDecl *D, bool DumpExplicitInst) {
  144 void ASTDumper::VisitClassTemplateDecl(const ClassTemplateDecl *D) {
tools/clang/lib/AST/ASTImporter.cpp
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  155         To = cast_or_null<ImportT>(*ToOrErr);
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  446     bool IsStructuralMatch(ClassTemplateDecl *From, ClassTemplateDecl *To);
  446     bool IsStructuralMatch(ClassTemplateDecl *From, ClassTemplateDecl *To);
  498     ExpectedDecl VisitClassTemplateDecl(ClassTemplateDecl *D);
 2064 bool ASTNodeImporter::IsStructuralMatch(ClassTemplateDecl *From,
 2065                                         ClassTemplateDecl *To) {
 2727     if (ClassTemplateDecl *FromDescribed =
 2729       ClassTemplateDecl *ToDescribed;
 5026 template <typename T> static auto getTemplateDefinition(T *D) -> T * {
 5026 template <typename T> static auto getTemplateDefinition(T *D) -> T * {
 5032   return cast_or_null<T>(TemplateWithDef);
 5035 ExpectedDecl ASTNodeImporter::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 5048   ClassTemplateDecl *FoundByLookup = nullptr;
 5060       auto *FoundTemplate = dyn_cast<ClassTemplateDecl>(Found);
 5060       auto *FoundTemplate = dyn_cast<ClassTemplateDecl>(Found);
 5064           ClassTemplateDecl *TemplateWithDef =
 5101   ClassTemplateDecl *D2;
 5117     auto *Recent =
 5153   ClassTemplateDecl *ClassTemplate;
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
 1512                                      ClassTemplateDecl *D1,
 1513                                      ClassTemplateDecl *D2) {
 1794   } else if (auto *ClassTemplate1 = dyn_cast<ClassTemplateDecl>(D1)) {
 1794   } else if (auto *ClassTemplate1 = dyn_cast<ClassTemplateDecl>(D1)) {
 1795     if (auto *ClassTemplate2 = dyn_cast<ClassTemplateDecl>(D2)) {
 1795     if (auto *ClassTemplate2 = dyn_cast<ClassTemplateDecl>(D2)) {
tools/clang/lib/AST/CXXInheritance.cpp
  290           if (auto *TD =
  291                   dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl()))
  465   const auto *TD = dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl());
  465   const auto *TD = dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl());
tools/clang/lib/AST/Comment.cpp
  273     const ClassTemplateDecl *CTD = cast<ClassTemplateDecl>(CommentDecl);
  273     const ClassTemplateDecl *CTD = cast<ClassTemplateDecl>(CommentDecl);
tools/clang/lib/AST/CommentSema.cpp
  939           (isa<ClassTemplateDecl>(ThisDeclInfo->CurrentDecl));
tools/clang/lib/AST/Decl.cpp
  181          isa<ClassTemplateDecl>(D) ||
  462   ClassTemplateDecl *temp = spec->getSpecializedTemplate();
  995         const ClassTemplateDecl *temp = spec->getSpecializedTemplate();
tools/clang/lib/AST/DeclCXX.cpp
 1687 ClassTemplateDecl *CXXRecordDecl::getDescribedClassTemplate() const {
 1688   return TemplateOrInstantiation.dyn_cast<ClassTemplateDecl *>();
 1691 void CXXRecordDecl::setDescribedClassTemplate(ClassTemplateDecl *Template) {
 1732     if (auto *CTD = From.dyn_cast<ClassTemplateDecl *>()) {
 1732     if (auto *CTD = From.dyn_cast<ClassTemplateDecl *>()) {
 1733       while (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate()) {
tools/clang/lib/AST/DeclPrinter.cpp
   84     void VisitClassTemplateDecl(ClassTemplateDecl *D);
  794   else if (ClassTemplateDecl *CTD =
  795            dyn_cast<ClassTemplateDecl>(D->getFriendDecl())) {
 1176 void DeclPrinter::VisitClassTemplateDecl(ClassTemplateDecl *D) {
tools/clang/lib/AST/DeclTemplate.cpp
  271     L->AddedCXXTemplateSpecialization(cast<Derived>(this),
  378 ClassTemplateDecl *ClassTemplateDecl::Create(ASTContext &C,
  386   return new (C, DC) ClassTemplateDecl(C, DC, L, Name, Params, Decl);
  389 ClassTemplateDecl *ClassTemplateDecl::CreateDeserialized(ASTContext &C,
  391   return new (C, ID) ClassTemplateDecl(C, nullptr, SourceLocation(),
  426   addSpecializationImpl<ClassTemplateDecl>(getSpecializations(), D, InsertPos);
  745                                 ClassTemplateDecl *SpecializedTemplate,
  766                                         ClassTemplateDecl *SpecializedTemplate,
  802 ClassTemplateDecl *
  807   return SpecializedTemplate.get<ClassTemplateDecl*>();
  837     llvm::PointerUnion<ClassTemplateDecl *,
  842     if (const auto *ctd = inst_from.dyn_cast<ClassTemplateDecl *>())
  842     if (const auto *ctd = inst_from.dyn_cast<ClassTemplateDecl *>())
  880                                        ClassTemplateDecl *SpecializedTemplate,
  898        ClassTemplateDecl *SpecializedTemplate,
tools/clang/lib/AST/ExternalASTMerger.cpp
  455 static bool importSpecializations(DeclTy *D, ASTImporter *Importer) {
  472   else if (auto *ClassTD = dyn_cast<ClassTemplateDecl>(D))
  472   else if (auto *ClassTD = dyn_cast<ClassTemplateDecl>(D))
tools/clang/lib/AST/ItaniumMangle.cpp
 4779   if (const ClassTemplateDecl *TD = dyn_cast<ClassTemplateDecl>(ND)) {
 4779   if (const ClassTemplateDecl *TD = dyn_cast<ClassTemplateDecl>(ND)) {
tools/clang/lib/AST/ODRHash.cpp
  499   const ClassTemplateDecl *TD = Record->getDescribedClassTemplate();
tools/clang/lib/AST/QualTypeNames.cpp
  274       if (ClassTemplateDecl *ClassTempl =
tools/clang/lib/AST/TextNodeDumper.cpp
 1670 void TextNodeDumper::VisitClassTemplateDecl(const ClassTemplateDecl *D) {
tools/clang/lib/AST/Type.cpp
 3872       if (isa<ClassTemplateDecl>(templateDecl))
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  842     if (auto *ClassTemplate = dyn_cast_or_null<ClassTemplateDecl>(
  842     if (auto *ClassTemplate = dyn_cast_or_null<ClassTemplateDecl>(
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  570 const internal::VariadicDynCastAllOfMatcher<Decl, ClassTemplateDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/Frontend/ASTUnit.cpp
  298       isa<ClassTemplateDecl>(ND) || isa<TemplateTemplateParmDecl>(ND) ||
  341     } else if (isa<ClassTemplateDecl>(ND))
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
   67             if (isa<ClassTemplateDecl>(RC->getParent()) || !isVisible(RC))
  150   void HandleTemplateSpecializations(const ClassTemplateDecl &CTD,
  174       HandleTemplateSpecializations(*cast<ClassTemplateDecl>(ND), Symbols, RDO);
tools/clang/lib/Index/IndexBody.cpp
  163     const ClassTemplateDecl *TD =
  164         dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl());
tools/clang/lib/Index/IndexDecl.cpp
  199     llvm::PointerUnion<ClassTemplateDecl *,
  202     if (const auto *CTD = Template.dyn_cast<ClassTemplateDecl *>()) {
  202     if (const auto *CTD = Template.dyn_cast<ClassTemplateDecl *>()) {
  206         if (const auto *CTD = dyn_cast<ClassTemplateDecl>(ND))
  206         if (const auto *CTD = dyn_cast<ClassTemplateDecl>(ND))
  636     llvm::PointerUnion<ClassTemplateDecl *,
  640         Template.is<ClassTemplateDecl *>()
  641             ? (Decl *)Template.get<ClassTemplateDecl *>()
  706       if (isa<ClassTemplateDecl>(ND) && D->getDeclContext()->isDependentContext())
tools/clang/lib/Index/IndexTypeSourceInfo.cpp
  184     const ClassTemplateDecl *TD =
  185         dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl());
tools/clang/lib/Index/USRGeneration.cpp
   89   void VisitClassTemplateDecl(const ClassTemplateDecl *D);
  374 void USRGenerator::VisitClassTemplateDecl(const ClassTemplateDecl *D) {
  506     if (ClassTemplateDecl *ClassTmpl = CXXRecord->getDescribedClassTemplate()) {
tools/clang/lib/Sema/SemaAccess.cpp
  439                                   ClassTemplateDecl *Friend) {
  449     ClassTemplateDecl *CTD;
  555   if (isa<ClassTemplateDecl>(Friend))
  556     return MatchesFriend(S, EC, cast<ClassTemplateDecl>(Friend));
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
   99         if (ClassTemplateDecl *ClassTemplate
  100               = dyn_cast_or_null<ClassTemplateDecl>(
tools/clang/lib/Sema/SemaCodeComplete.cpp
 1027   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(D))
 1027   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(D))
 1437   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 1437   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 1451   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 1451   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 1465   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 1465   if (const auto *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
 3185     if (ClassTemplateDecl *Template = Record->getDescribedClassTemplate()) {
 4762       if (const auto *TD =
 4763               dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl())) {
tools/clang/lib/Sema/SemaCoroutine.cpp
   62   ClassTemplateDecl *CoroTraits = S.lookupCoroutineTraits(KwLoc, FuncLoc);
  159   ClassTemplateDecl *CoroHandle = Result.getAsSingle<ClassTemplateDecl>();
  159   ClassTemplateDecl *CoroHandle = Result.getAsSingle<ClassTemplateDecl>();
 1569 ClassTemplateDecl *Sema::lookupCoroutineTraits(SourceLocation KwLoc,
 1582                 Result.getAsSingle<ClassTemplateDecl>())) {
tools/clang/lib/Sema/SemaDecl.cpp
  202         else if (auto *CTD = dyn_cast<ClassTemplateDecl>(TD)) {
  202         else if (auto *CTD = dyn_cast<ClassTemplateDecl>(TD)) {
 1235   if (isa<ClassTemplateDecl>(TD))
 4414     else if (ClassTemplateDecl *CTD = dyn_cast<ClassTemplateDecl>(TagD))
 4414     else if (ClassTemplateDecl *CTD = dyn_cast<ClassTemplateDecl>(TagD))
 5162     if (!Template || !isa<ClassTemplateDecl>(Template)) {
14481   else if (isa<ClassTemplateDecl>(PrevDecl))
15697   if (ClassTemplateDecl *Template = Record->getDescribedClassTemplate())
tools/clang/lib/Sema/SemaDeclCXX.cpp
  986   ClassTemplateDecl *TraitTD = Result.getAsSingle<ClassTemplateDecl>();
  986   ClassTemplateDecl *TraitTD = Result.getAsSingle<ClassTemplateDecl>();
 5743     } else if (isa<ClassTemplateDecl>(D)) {
 5745                              cast<ClassTemplateDecl>(D)->getTemplatedDecl());
 8496       if (ClassTemplateDecl *CTD = RD->getDescribedClassTemplate())
 9235         MightInstantiateToSpecialization = !(TD && isa<ClassTemplateDecl>(TD) &&
 9655   ClassTemplateDecl *Template = nullptr;
 9669     Template = dyn_cast_or_null<ClassTemplateDecl>(
 9705 static ClassTemplateDecl *LookupStdInitializerList(Sema &S, SourceLocation Loc){
 9718   ClassTemplateDecl *Template = Result.getAsSingle<ClassTemplateDecl>();
 9718   ClassTemplateDecl *Template = Result.getAsSingle<ClassTemplateDecl>();
tools/clang/lib/Sema/SemaExprCXX.cpp
  278     if (ClassTemplateDecl *Template = Found.getAsSingle<ClassTemplateDecl>()) {
  278     if (ClassTemplateDecl *Template = Found.getAsSingle<ClassTemplateDecl>()) {
 1125   if (ClassTemplateDecl *Template = dyn_cast<ClassTemplateDecl>(ContextDecl))
 1125   if (ClassTemplateDecl *Template = dyn_cast<ClassTemplateDecl>(ContextDecl))
tools/clang/lib/Sema/SemaInit.cpp
 9660                                               ClassTemplateDecl *CTD) {
 9680   auto *Template =
 9681       dyn_cast_or_null<ClassTemplateDecl>(TemplateName.getAsTemplateDecl());
 9871         cast<ClassTemplateDecl>(Template)->getTemplatedDecl();
tools/clang/lib/Sema/SemaLookup.cpp
 2688       if (ClassTemplateDecl *ClassTemplate
 2689                  = dyn_cast<ClassTemplateDecl>(Template.getAsTemplateDecl())) {
 3848           const auto *TD =
 3849               dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl());
tools/clang/lib/Sema/SemaOpenMP.cpp
 1253     if (const ClassTemplateDecl *CTD = CTSD->getSpecializedTemplate())
16158       !isa<ClassTemplateDecl>(CurLexicalContext) &&
tools/clang/lib/Sema/SemaTemplate.cpp
 1442   ClassTemplateDecl *PrevClassTemplate =
 1443       dyn_cast_or_null<ClassTemplateDecl>(PrevDecl);
 1552           auto *Tmpl = cast<CXXRecordDecl>(Hidden)->getDescribedClassTemplate();
 1631   ClassTemplateDecl *NewTemplate
 1632     = ClassTemplateDecl::Create(Context, SemanticContext, NameLoc,
 1742                                               ClassTemplateDecl *Template)
 1746   ClassTemplateDecl *Template;
 2051       *this, cast<ClassTemplateDecl>(Template));
 2969                 : isa<ClassTemplateDecl>(Template)
 3314     if (isa<ClassTemplateDecl>(Template)) {
 3345   } else if (ClassTemplateDecl *ClassTemplate
 3346                = dyn_cast<ClassTemplateDecl>(Template)) {
 3732   auto *Template = Partial->getSpecializedTemplate();
 4357   if (ClassTemplateDecl *Temp = R.getAsSingle<ClassTemplateDecl>()) {
 4357   if (ClassTemplateDecl *Temp = R.getAsSingle<ClassTemplateDecl>()) {
 6898   if (!isa<ClassTemplateDecl>(Template) &&
 7465   if (isa<ClassTemplateDecl>(Specialized))
 7692   ClassTemplateDecl *ClassTemplate
 7693     = dyn_cast_or_null<ClassTemplateDecl>(Name.getAsTemplateDecl());
 8963   ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(TD);
 8963   ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(TD);
10444     if (auto *TD = From.dyn_cast<ClassTemplateDecl *>())
10444     if (auto *TD = From.dyn_cast<ClassTemplateDecl *>())
10473   void checkTemplate(TemplDecl *TD) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 2748   auto *Template = Partial->getSpecializedTemplate();
 5050                                      TemplateLikeDecl *P2,
 5130   ClassTemplateDecl *Primary = Spec->getSpecializedTemplate();
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  174       if (ClassTemplateDecl *ClassTemplate = Rec->getDescribedClassTemplate()) {
 2495   llvm::PointerUnion<ClassTemplateDecl *,
 2500     ClassTemplateDecl *Template = ClassTemplateSpec->getSpecializedTemplate();
 2616     ClassTemplateDecl *Template = ClassTemplateSpec->getSpecializedTemplate();
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 1308 Decl *TemplateDeclInstantiator::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 1333   ClassTemplateDecl *PrevClassTemplate = nullptr;
 1338       PrevClassTemplate = dyn_cast<ClassTemplateDecl>(Found.front());
 1369       PrevClassTemplate = R.getAsSingle<ClassTemplateDecl>();
 1439   ClassTemplateDecl *Inst
 1440     = ClassTemplateDecl::Create(SemaRef.Context, DC, D->getLocation(),
 1498   ClassTemplateDecl *ClassTemplate = D->getSpecializedTemplate();
 1507   ClassTemplateDecl *InstClassTemplate
 1508     = dyn_cast<ClassTemplateDecl>(Found.front());
 3248   ClassTemplateDecl *ClassTemplate = D->getSpecializedTemplate();
 3256   ClassTemplateDecl *InstClassTemplate =
 3257       cast_or_null<ClassTemplateDecl>(SemaRef.FindInstantiatedDecl(
 3560                                             ClassTemplateDecl *ClassTemplate,
 5066 static bool isInstantiationOf(ClassTemplateDecl *Pattern,
 5067                               ClassTemplateDecl *Instance) {
 5226   if (auto *Temp = dyn_cast<ClassTemplateDecl>(Other))
 5226   if (auto *Temp = dyn_cast<ClassTemplateDecl>(Other))
 5227     return isInstantiationOf(cast<ClassTemplateDecl>(D), Temp);
 5401     ClassTemplateDecl *ClassTemplate = Record->getDescribedClassTemplate();
 5422           ClassTemplateDecl *SpecTemplate = InstSpec->getSpecializedTemplate();
tools/clang/lib/Serialization/ASTReader.cpp
10368       const ClassTemplateDecl *FirstTemplate =
10370       const ClassTemplateDecl *SecondTemplate =
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  264     void AddLazySpecializations(T *D,
  387     void VisitClassTemplateDecl(ClassTemplateDecl *D);
 1852     auto *Template = ReadDeclAs<ClassTemplateDecl>();
 1852     auto *Template = ReadDeclAs<ClassTemplateDecl>();
 2053 void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 2099     if (auto *CTD = dyn_cast<ClassTemplateDecl>(InstD)) {
 2099     if (auto *CTD = dyn_cast<ClassTemplateDecl>(InstD)) {
 2124     auto *CanonPattern = ReadDeclAs<ClassTemplateDecl>();
 2124     auto *CanonPattern = ReadDeclAs<ClassTemplateDecl>();
 3730     D = ClassTemplateDecl::CreateDeserialized(Context, ID);
 4024   if (auto *CTD = dyn_cast<ClassTemplateDecl>(D))
 4024   if (auto *CTD = dyn_cast<ClassTemplateDecl>(D))
tools/clang/lib/Serialization/ASTWriter.cpp
 6578     const ClassTemplateDecl *TD, const ClassTemplateSpecializationDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
  107     void VisitClassTemplateDecl(ClassTemplateDecl *D);
  203     void AddTemplateSpecializations(DeclTy *D) {
 1304   if (ClassTemplateDecl *TemplD = D->getDescribedClassTemplate()) {
 1468 void ASTDeclWriter::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 1482   llvm::PointerUnion<ClassTemplateDecl *,
 1485   if (Decl *InstFromD = InstFrom.dyn_cast<ClassTemplateDecl *>()) {
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
   80     } else if (const auto *TemplateDecl =
   81                    dyn_cast<ClassTemplateDecl>(FoundDecl)) {
  118   void handleClassTemplateDecl(const ClassTemplateDecl *TemplateDecl) {
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
  552   } else if (const auto *TemplateFwdDecl =
  553                  Result.Nodes.getNodeAs<ClassTemplateDecl>(
tools/clang/tools/extra/clang-move/Move.cpp
  264     if (const auto *TC = CD->getDescribedClassTemplate())
  667       if (const auto *DCT = FWD->getDescribedClassTemplate())
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
   47   return isa<RecordDecl>(TargetDecl) || isa<ClassTemplateDecl>(TargetDecl) ||
tools/clang/tools/extra/clangd/SemanticHighlighting.cpp
   60   if (isa<ClassTemplateDecl>(D) || isa<RecordDecl>(D) ||
tools/clang/tools/extra/clangd/unittests/TypeHierarchyTests.cpp
  216       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Child"))->getTemplatedDecl();
  264       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Parent"))->getTemplatedDecl();
  295       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Child"))->getTemplatedDecl();
  324       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Parent"))->getTemplatedDecl();
  326       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Child1"))->getTemplatedDecl();
  328       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Child2"))->getTemplatedDecl();
  330       dyn_cast<ClassTemplateDecl>(&findDecl(AST, "Child3"))->getTemplatedDecl();
tools/clang/tools/extra/modularize/Modularize.cpp
  621         isa<ClassTemplateDecl>(ND) || isa<TemplateTypeParmDecl>(ND) ||
tools/clang/tools/libclang/CIndex.cpp
  937 bool CursorVisitor::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 5008   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(D)) {
 5008   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(D)) {
 6361     if (RecordDecl *Def = cast<ClassTemplateDecl>(D)->getTemplatedDecl()
 8010     if (ClassTemplateDecl *ClassTmpl = RD->getDescribedClassTemplate())
tools/clang/tools/libclang/CIndexCXX.cpp
   97       llvm::PointerUnion<ClassTemplateDecl *,
  100       if (Result.is<ClassTemplateDecl *>())
  101         Template = Result.get<ClassTemplateDecl *>();
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
  124   bool VisitClassTemplateDecl(const ClassTemplateDecl *D) {
  868 bool CXIndexDataConsumer::handleClassTemplate(const ClassTemplateDecl *D) {
 1046     if (ClassTemplateDecl *TemplD = RD->getDescribedClassTemplate())
 1059   if (const ClassTemplateDecl *ClassTempl = dyn_cast<ClassTemplateDecl>(D)) {
 1059   if (const ClassTemplateDecl *ClassTempl = dyn_cast<ClassTemplateDecl>(D)) {
tools/clang/tools/libclang/CXIndexDataConsumer.h
  409   bool handleClassTemplate(const ClassTemplateDecl *D);
tools/clang/tools/libclang/CursorVisitor.h
  218   bool VisitClassTemplateDecl(ClassTemplateDecl *D);
tools/clang/unittests/AST/ASTImporterFixtures.h
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  175     return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
tools/clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
   60   using DeclTy = ClassTemplateDecl;
  160     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  167     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  177     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  184     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  193     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  194     auto *From1 = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  203     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  204     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  215     auto *FromProto = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  216     auto *FromDef = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  225     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  226     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  237     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  238     auto *FromProto = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  247     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  248     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  260     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  261     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  270     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  271     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  283     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  284     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  294     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  305     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  306     auto *FromProto =
  317     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  318     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  330     auto *FromProto =
  332     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  342     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  343     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
   97   using DeclTy = ClassTemplateDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterTest.cpp
 1176   auto To = cast<ClassTemplateDecl>(Import(From, Lang_CXX));
 1632     auto *FromD = FirstDeclMatcher<ClassTemplateDecl>().match(
 1650     auto *FromCTD = FirstDeclMatcher<ClassTemplateDecl>().match(
 1652     auto *ToCTD = cast<ClassTemplateDecl>(Import(FromCTD, Lang_CXX));
 1652     auto *ToCTD = cast<ClassTemplateDecl>(Import(FromCTD, Lang_CXX));
 1684   ClassTemplateDecl *FromD = FirstDeclMatcher<ClassTemplateDecl>().match(
 3788   auto *FromD =
 3790   auto *ToD = Import(FromD, Lang_CXX);
 3797   auto *Class =
 3848   auto *Fwd = FirstDeclMatcher<ClassTemplateDecl>().match(
 3850   auto *Imported0 = cast<ClassTemplateDecl>(Import(Fwd, Lang_CXX));
 3850   auto *Imported0 = cast<ClassTemplateDecl>(Import(Fwd, Lang_CXX));
 3857   auto *Definition = FirstDeclMatcher<ClassTemplateDecl>().match(
 3859   auto *Imported1 = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 3859   auto *Imported1 = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 3887   auto *ToDecl = FirstDeclMatcher<ClassTemplateDecl>().match(
 3895   auto *Definition = FirstDeclMatcher<ClassTemplateDecl>().match(
 3897   auto *ImportedDef = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 3897   auto *ImportedDef = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 3917   auto *Fwd = FirstDeclMatcher<ClassTemplateDecl>().match(
 3919   auto *ImportedFwd = cast<ClassTemplateDecl>(Import(Fwd, Lang_CXX));
 3919   auto *ImportedFwd = cast<ClassTemplateDecl>(Import(Fwd, Lang_CXX));
 3926   auto *Definition = FirstDeclMatcher<ClassTemplateDecl>().match(
 3928   auto *ImportedDef = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 3928   auto *ImportedDef = cast<ClassTemplateDecl>(Import(Definition, Lang_CXX));
 4191     auto *FromD = FirstDeclMatcher<ClassTemplateDecl>().match(
 4210     auto *FromCTD = FirstDeclMatcher<ClassTemplateDecl>().match(
 4212     auto *ToCTD = cast<ClassTemplateDecl>(Import(FromCTD, Lang_CXX));
 4212     auto *ToCTD = cast<ClassTemplateDecl>(Import(FromCTD, Lang_CXX));
 4301   auto *X = FirstDeclMatcher<ClassTemplateDecl>().match(
 4562   auto *F = FirstDeclMatcher<ClassTemplateDecl>().match(
 4585   auto *F = FirstDeclMatcher<ClassTemplateDecl>().match(
 4607   auto *F = FirstDeclMatcher<ClassTemplateDecl>().match(
 4649   auto *Template = FirstDeclMatcher<ClassTemplateDecl>().match(
 5326   auto *ToClassProto = FirstDeclMatcher<ClassTemplateDecl>().match(
 5328   auto *ToClassDef = LastDeclMatcher<ClassTemplateDecl>().match(
 5337   auto *FromClassProto = FirstDeclMatcher<ClassTemplateDecl>().match(
 5339   auto *FromClassDef = LastDeclMatcher<ClassTemplateDecl>().match(
 5347   auto *ImportedDef = Import(FromClassDef, Lang_CXX);
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   47   using UnaryPredicate = std::function<bool(const NodeType *)>;
   51     if (auto N = Result.Nodes.getNodeAs<NodeType>("")) {
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
  196   ClassTemplateDecl *TD = LastDeclMatcher<ClassTemplateDecl>().match(
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  293   clang::ClassTemplateDecl *
  303       clang::ClassTemplateDecl *class_template_decl, int kind,
  936   clang::ClassTemplateDecl *ParseClassTemplateDecl(
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 1519         clang::ClassTemplateDecl *class_template_decl =
tools/lldb/source/Symbol/ClangASTContext.cpp
 1519 ClassTemplateDecl *ClangASTContext::CreateClassTemplateDecl(
 1524   ClassTemplateDecl *class_template_decl = nullptr;
 1534     class_template_decl = dyn_cast<clang::ClassTemplateDecl>(decl);
 1560   class_template_decl = ClassTemplateDecl::Create(
 1610     DeclContext *decl_ctx, ClassTemplateDecl *class_template_decl, int kind,
 9813 clang::ClassTemplateDecl *ClangASTContext::ParseClassTemplateDecl(
tools/lldb/source/Symbol/CxxModuleHandler.cpp
  215   ClassTemplateDecl *new_class_template = nullptr;
  217     if ((new_class_template = dyn_cast<ClassTemplateDecl>(LD)))
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {