|
reference, declaration → definition
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.cpp10368 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)) {