|
clang
3.8.0
|
Declaration of a class template. More...
#include <DeclTemplate.h>
Classes | |
| struct | Common |
| Data that is common to all of the declarations of a given class template. More... | |
Public Types | |
| typedef SpecIterator < ClassTemplateSpecializationDecl > | spec_iterator |
| typedef llvm::iterator_range < spec_iterator > | spec_range |
Public Types inherited from clang::RedeclarableTemplateDecl | |
| typedef redeclarable_base::redecl_range | redecl_range |
| typedef redeclarable_base::redecl_iterator | redecl_iterator |
Public Types inherited from clang::NamedDecl | |
| enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue } |
| Kinds of explicit visibility. More... | |
Public Types inherited from clang::Decl | |
| enum | { DeclObjAlignment = llvm::AlignOf<uint64_t>::Alignment } |
| Alignment guaranteed when allocating Decl and any subtypes. More... | |
| enum | Kind |
| Lists the kind of concrete classes of Decl. More... | |
| enum | IdentifierNamespace { IDNS_Label = 0x0001, IDNS_Tag = 0x0002, IDNS_Type = 0x0004, IDNS_Member = 0x0008, IDNS_Namespace = 0x0010, IDNS_Ordinary = 0x0020, IDNS_ObjCProtocol = 0x0040, IDNS_OrdinaryFriend = 0x0080, IDNS_TagFriend = 0x0100, IDNS_Using = 0x0200, IDNS_NonMemberOperator = 0x0400, IDNS_LocalExtern = 0x0800 } |
| IdentifierNamespace - The different namespaces in which declarations may appear. More... | |
| enum | ObjCDeclQualifier { OBJC_TQ_None = 0x0, OBJC_TQ_In = 0x1, OBJC_TQ_Inout = 0x2, OBJC_TQ_Out = 0x4, OBJC_TQ_Bycopy = 0x8, OBJC_TQ_Byref = 0x10, OBJC_TQ_Oneway = 0x20, OBJC_TQ_CSNullability = 0x40 } |
| ObjCDeclQualifier - 'Qualifiers' written next to the return and parameter types in method declarations. More... | |
| enum | FriendObjectKind { FOK_None, FOK_Declared, FOK_Undeclared } |
| typedef AttrVec::const_iterator | attr_iterator |
| typedef llvm::iterator_range < attr_iterator > | attr_range |
| typedef llvm::iterator_range < redecl_iterator > | redecl_range |
Public Types inherited from clang::Redeclarable< RedeclarableTemplateDecl > | |
| typedef llvm::iterator_range < redecl_iterator > | redecl_range |
Public Member Functions | |
| void | LoadLazySpecializations () const |
| Load any lazily-loaded specializations from the external source. More... | |
| CXXRecordDecl * | getTemplatedDecl () const |
| Get the underlying class declarations of the template. More... | |
| bool | isThisDeclarationADefinition () const |
| Returns whether this template declaration defines the primary class pattern. More... | |
| ClassTemplateSpecializationDecl * | findSpecialization (ArrayRef< TemplateArgument > Args, void *&InsertPos) |
| Return the specialization with the provided arguments if it exists, otherwise return the insertion point. More... | |
| void | AddSpecialization (ClassTemplateSpecializationDecl *D, void *InsertPos) |
| Insert the specified specialization knowing that it is not already in. More... | |
| ClassTemplateDecl * | getCanonicalDecl () override |
| Retrieves the canonical declaration of this template. More... | |
| const ClassTemplateDecl * | getCanonicalDecl () const |
| ClassTemplateDecl * | getPreviousDecl () |
| Retrieve the previous declaration of this class template, or NULL if no such declaration exists. More... | |
| const ClassTemplateDecl * | getPreviousDecl () const |
| Retrieve the previous declaration of this class template, or NULL if no such declaration exists. More... | |
| ClassTemplateDecl * | getMostRecentDecl () |
| const ClassTemplateDecl * | getMostRecentDecl () const |
| ClassTemplateDecl * | getInstantiatedFromMemberTemplate () const |
| ClassTemplatePartialSpecializationDecl * | findPartialSpecialization (ArrayRef< TemplateArgument > Args, void *&InsertPos) |
| Return the partial specialization with the provided arguments if it exists, otherwise return the insertion point. More... | |
| void | AddPartialSpecialization (ClassTemplatePartialSpecializationDecl *D, void *InsertPos) |
| Insert the specified partial specialization knowing that it is not already in. More... | |
| void | getPartialSpecializations (SmallVectorImpl< ClassTemplatePartialSpecializationDecl * > &PS) |
| Retrieve the partial specializations as an ordered list. More... | |
| ClassTemplatePartialSpecializationDecl * | findPartialSpecialization (QualType T) |
| Find a class template partial specialization with the given type T. More... | |
| ClassTemplatePartialSpecializationDecl * | findPartialSpecInstantiatedFromMember (ClassTemplatePartialSpecializationDecl *D) |
| Find a class template partial specialization which was instantiated from the given member partial specialization. More... | |
| QualType | getInjectedClassNameSpecialization () |
| Retrieve the template specialization type of the injected-class-name for this class template. More... | |
| spec_range | specializations () const |
| spec_iterator | spec_begin () const |
| spec_iterator | spec_end () const |
Public Member Functions inherited from clang::RedeclarableTemplateDecl | |
| const RedeclarableTemplateDecl * | getCanonicalDecl () const |
| bool | isMemberSpecialization () const |
| Determines whether this template was a specialization of a member template. More... | |
| void | setMemberSpecialization () |
| Note that this member template is a specialization. More... | |
| RedeclarableTemplateDecl * | getInstantiatedFromMemberTemplate () const |
| Retrieve the member template from which this template was instantiated, or NULL if this template was not instantiated from a member template. More... | |
| void | setInstantiatedFromMemberTemplate (RedeclarableTemplateDecl *TD) |
Public Member Functions inherited from clang::TemplateDecl | |
| TemplateParameterList * | getTemplateParameters () const |
| Get the list of template parameters. More... | |
| NamedDecl * | getTemplatedDecl () const |
| Get the underlying, templated declaration. More... | |
| SourceRange | getSourceRange () const override LLVM_READONLY |
| Source range that this declaration covers. More... | |
| void | init (NamedDecl *templatedDecl, TemplateParameterList *templateParams) |
| Initialize the underlying templated declaration and template parameters. More... | |
Public Member Functions inherited from clang::NamedDecl | |
| IdentifierInfo * | getIdentifier () const |
| getIdentifier - Get the identifier that names this declaration, if there is one. More... | |
| StringRef | getName () const |
| getName - Get the name of identifier for this declaration as a StringRef. More... | |
| std::string | getNameAsString () const |
| getNameAsString - Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ constructor, Objective-C selector, etc). More... | |
| void | printName (raw_ostream &os) const |
| DeclarationName | getDeclName () const |
| getDeclName - Get the actual, stored name of the declaration, which may be a special name. More... | |
| void | setDeclName (DeclarationName N) |
| Set the name of this declaration. More... | |
| void | printQualifiedName (raw_ostream &OS) const |
| printQualifiedName - Returns human-readable qualified name for declaration, like A::B::i, for i being member of namespace A::B. More... | |
| void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
| std::string | getQualifiedNameAsString () const |
| virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
| getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream. More... | |
| bool | declarationReplaces (NamedDecl *OldD, bool IsKnownNewer=true) const |
| Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. More... | |
| bool | hasLinkage () const |
| Determine whether this declaration has linkage. More... | |
| bool | isHidden () const |
| Determine whether this declaration is hidden from name lookup. More... | |
| void | setHidden (bool Hide) |
| Set whether this declaration is hidden from name lookup. More... | |
| bool | isCXXClassMember () const |
| Determine whether this declaration is a C++ class member. More... | |
| bool | isCXXInstanceMember () const |
| Determine whether the given declaration is an instance member of a C++ class. More... | |
| Linkage | getLinkageInternal () const |
| Determine what kind of linkage this entity has. More... | |
| Linkage | getFormalLinkage () const |
| Get the linkage from a semantic point of view. More... | |
| bool | hasExternalFormalLinkage () const |
| True if this decl has external linkage. More... | |
| bool | isExternallyVisible () const |
| Visibility | getVisibility () const |
| Determines the visibility of this entity. More... | |
| LinkageInfo | getLinkageAndVisibility () const |
| Determines the linkage and visibility of this entity. More... | |
| Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
| If visibility was explicitly specified for this declaration, return that visibility. More... | |
| bool | isLinkageValid () const |
| True if the computed linkage is valid. More... | |
| bool | hasLinkageBeenComputed () const |
| True if something has required us to compute the linkage of this declaration. More... | |
| NamedDecl * | getUnderlyingDecl () |
| Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. More... | |
| const NamedDecl * | getUnderlyingDecl () const |
| NamedDecl * | getMostRecentDecl () |
| const NamedDecl * | getMostRecentDecl () const |
| ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
Public Member Functions inherited from clang::Decl | |
| SourceLocation | getLocStart () const LLVM_READONLY |
| SourceLocation | getLocEnd () const LLVM_READONLY |
| SourceLocation | getLocation () const |
| void | setLocation (SourceLocation L) |
| Kind | getKind () const |
| const char * | getDeclKindName () const |
| Decl * | getNextDeclInContext () |
| const Decl * | getNextDeclInContext () const |
| DeclContext * | getDeclContext () |
| const DeclContext * | getDeclContext () const |
| Decl * | getNonClosureContext () |
| Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc. More... | |
| const Decl * | getNonClosureContext () const |
| TranslationUnitDecl * | getTranslationUnitDecl () |
| const TranslationUnitDecl * | getTranslationUnitDecl () const |
| bool | isInAnonymousNamespace () const |
| bool | isInStdNamespace () const |
| ASTContext & | getASTContext () const LLVM_READONLY |
| void | setAccess (AccessSpecifier AS) |
| AccessSpecifier | getAccess () const |
| AccessSpecifier | getAccessUnsafe () const |
| Retrieve the access specifier for this declaration, even though it may not yet have been properly set. More... | |
| bool | hasAttrs () const |
| void | setAttrs (const AttrVec &Attrs) |
| AttrVec & | getAttrs () |
| const AttrVec & | getAttrs () const |
| void | dropAttrs () |
| void | addAttr (Attr *A) |
| attr_range | attrs () const |
| attr_iterator | attr_begin () const |
| attr_iterator | attr_end () const |
| template<typename T > | |
| void | dropAttr () |
| template<typename T > | |
| llvm::iterator_range < specific_attr_iterator< T > > | specific_attrs () const |
| template<typename T > | |
| specific_attr_iterator< T > | specific_attr_begin () const |
| template<typename T > | |
| specific_attr_iterator< T > | specific_attr_end () const |
| template<typename T > | |
| T * | getAttr () const |
| template<typename T > | |
| bool | hasAttr () const |
| unsigned | getMaxAlignment () const |
| getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none. More... | |
| void | setInvalidDecl (bool Invalid=true) |
| setInvalidDecl - Indicates the Decl had a semantic error. More... | |
| bool | isInvalidDecl () const |
| bool | isImplicit () const |
| isImplicit - Indicates whether the declaration was implicitly generated by the implementation. More... | |
| void | setImplicit (bool I=true) |
| bool | isUsed (bool CheckUsedAttr=true) const |
| Whether this declaration was used, meaning that a definition is required. More... | |
| void | setIsUsed () |
| Set whether the declaration is used, in the sense of odr-use. More... | |
| void | markUsed (ASTContext &C) |
| Mark the declaration used, in the sense of odr-use. More... | |
| bool | isReferenced () const |
| Whether any declaration of this entity was referenced. More... | |
| bool | isThisDeclarationReferenced () const |
| Whether this declaration was referenced. More... | |
| void | setReferenced (bool R=true) |
| bool | isTopLevelDeclInObjCContainer () const |
| Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition. More... | |
| void | setTopLevelDeclInObjCContainer (bool V=true) |
| bool | isModulePrivate () const |
| Whether this declaration was marked as being private to the module in which it was defined. More... | |
| AvailabilityResult | getAvailability (std::string *Message=nullptr) const |
| Determine the availability of the given declaration. More... | |
| bool | isDeprecated (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'deprecated'. More... | |
| bool | isUnavailable (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'unavailable'. More... | |
| bool | isWeakImported () const |
| Determine whether this is a weak-imported symbol. More... | |
| bool | canBeWeakImported (bool &IsDefinition) const |
| Determines whether this symbol can be weak-imported, e.g., whether it would be well-formed to add the weak_import attribute. More... | |
| bool | isFromASTFile () const |
| Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed. More... | |
| unsigned | getGlobalID () const |
| Retrieve the global declaration ID associated with this declaration, which specifies where in the. More... | |
| unsigned | getOwningModuleID () const |
| Retrieve the global ID of the module that owns this particular declaration. More... | |
| Module * | getImportedOwningModule () const |
| Get the imported owning module, if this decl is from an imported (non-local) module. More... | |
| Module * | getLocalOwningModule () const |
| Get the local owning module, if known. More... | |
| void | setLocalOwningModule (Module *M) |
| unsigned | getIdentifierNamespace () const |
| bool | isInIdentifierNamespace (unsigned NS) const |
| bool | hasTagIdentifierNamespace () const |
| DeclContext * | getLexicalDeclContext () |
| getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC). More... | |
| const DeclContext * | getLexicalDeclContext () const |
| virtual bool | isOutOfLine () const |
| Determine whether this declaration is declared out of line (outside its semantic context). More... | |
| void | setDeclContext (DeclContext *DC) |
| setDeclContext - Set both the semantic and lexical DeclContext to DC. More... | |
| void | setLexicalDeclContext (DeclContext *DC) |
| bool | isDefinedOutsideFunctionOrMethod () const |
| isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method. More... | |
| bool | isLexicallyWithinFunctionOrMethod () const |
| Returns true if this declaration lexically is inside a function. More... | |
| const DeclContext * | getParentFunctionOrMethod () const |
| If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null. More... | |
| DeclContext * | getParentFunctionOrMethod () |
| const Decl * | getCanonicalDecl () const |
| bool | isCanonicalDecl () const |
| Whether this particular Decl is a canonical one. More... | |
| redecl_range | redecls () const |
| Returns an iterator range for all the redeclarations of the same decl. More... | |
| redecl_iterator | redecls_begin () const |
| redecl_iterator | redecls_end () const |
| Decl * | getPreviousDecl () |
| Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. More... | |
| const Decl * | getPreviousDecl () const |
| Retrieve the most recent declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. More... | |
| bool | isFirstDecl () const |
| True if this is the first declaration in its redeclaration chain. More... | |
| Decl * | getMostRecentDecl () |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More... | |
| const Decl * | getMostRecentDecl () const |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More... | |
| virtual Stmt * | getBody () const |
| getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body. More... | |
| virtual bool | hasBody () const |
Returns true if this Decl represents a declaration for a body of code, such as a function or method definition. More... | |
| SourceLocation | getBodyRBrace () const |
| getBodyRBrace - Gets the right brace of the body, if a body exists. More... | |
| bool | isTemplateParameter () const |
| isTemplateParameter - Determines whether this declaration is a template parameter. More... | |
| bool | isTemplateParameterPack () const |
| isTemplateParameter - Determines whether this declaration is a template parameter pack. More... | |
| bool | isParameterPack () const |
| Whether this declaration is a parameter pack. More... | |
| bool | isTemplateDecl () const |
| returns true if this declaration is a template More... | |
| bool | isFunctionOrFunctionTemplate () const |
| Whether this declaration is a function or function template. More... | |
| FunctionDecl * | getAsFunction () LLVM_READONLY |
| Returns the function itself, or the templated function if this is a function template. More... | |
| const FunctionDecl * | getAsFunction () const |
| void | setLocalExternDecl () |
| Changes the namespace of this declaration to reflect that it's a function-local extern declaration. More... | |
| bool | isLocalExternDecl () |
| Determine whether this is a block-scope declaration with linkage. More... | |
| void | setObjectOfFriendDecl (bool PerformFriendInjection=false) |
| Changes the namespace of this declaration to reflect that it's the object of a friend declaration. More... | |
| FriendObjectKind | getFriendObjectKind () const |
| Determines whether this declaration is the object of a friend declaration and, if so, what kind. More... | |
| void | setNonMemberOperator () |
| Specifies that this declaration is a C++ overloaded non-member. More... | |
| void | print (raw_ostream &Out, unsigned Indentation=0, bool PrintInstantiation=false) const |
| void | print (raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0, bool PrintInstantiation=false) const |
| void | dump () const |
| void | dumpColor () const |
| void | dump (raw_ostream &Out) const |
| const FunctionType * | getFunctionType (bool BlocksToo=true) const |
| Looks through the Decl's underlying type to extract a FunctionType when possible. More... | |
Public Member Functions inherited from clang::Redeclarable< RedeclarableTemplateDecl > | |
| Redeclarable (const ASTContext &Ctx) | |
| RedeclarableTemplateDecl * | getPreviousDecl () |
| Return the previous declaration of this declaration or NULL if this is the first declaration. More... | |
| const RedeclarableTemplateDecl * | getPreviousDecl () const |
| RedeclarableTemplateDecl * | getFirstDecl () |
| Return the first declaration of this declaration or itself if this is the only declaration. More... | |
| const RedeclarableTemplateDecl * | getFirstDecl () const |
| Return the first declaration of this declaration or itself if this is the only declaration. More... | |
| bool | isFirstDecl () const |
| True if this is the first declaration in its redeclaration chain. More... | |
| RedeclarableTemplateDecl * | getMostRecentDecl () |
| Returns the most recent (re)declaration of this declaration. More... | |
| const RedeclarableTemplateDecl * | getMostRecentDecl () const |
| Returns the most recent (re)declaration of this declaration. More... | |
| void | setPreviousDecl (RedeclarableTemplateDecl *PrevDecl) |
| Set the previous declaration. More... | |
| redecl_range | redecls () const |
| Returns an iterator range for all the redeclarations of the same decl. More... | |
| redecl_iterator | redecls_begin () const |
| redecl_iterator | redecls_end () const |
Static Public Member Functions | |
| static ClassTemplateDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl, ClassTemplateDecl *PrevDecl) |
| Create a class template node. More... | |
| static ClassTemplateDecl * | CreateDeserialized (ASTContext &C, unsigned ID) |
| Create an empty class template node. More... | |
| static bool | classof (const Decl *D) |
| static bool | classofKind (Kind K) |
Static Public Member Functions inherited from clang::RedeclarableTemplateDecl | |
| static bool | classof (const Decl *D) |
| static bool | classofKind (Kind K) |
Static Public Member Functions inherited from clang::TemplateDecl | |
| static bool | classof (const Decl *D) |
| static bool | classofKind (Kind K) |
Static Public Member Functions inherited from clang::NamedDecl | |
| static bool | classof (const Decl *D) |
| static bool | classofKind (Kind K) |
Static Public Member Functions inherited from clang::Decl | |
| static unsigned | getIdentifierNamespaceForKind (Kind DK) |
| static bool | isTagIdentifierNamespace (unsigned NS) |
| static void | add (Kind k) |
| static void | EnableStatistics () |
| static void | PrintStats () |
| static bool | classofKind (Kind K) |
| static DeclContext * | castToDeclContext (const Decl *) |
| static Decl * | castFromDeclContext (const DeclContext *) |
| static void | printGroup (Decl **Begin, unsigned NumDecls, raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0) |
Protected Member Functions | |
| llvm::FoldingSetVector < ClassTemplateSpecializationDecl > & | getSpecializations () const |
| Retrieve the set of specializations of this class template. More... | |
| llvm::FoldingSetVector < ClassTemplatePartialSpecializationDecl > & | getPartialSpecializations () |
| Retrieve the set of partial specializations of this class template. More... | |
| ClassTemplateDecl (ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
| CommonBase * | newCommon (ASTContext &C) const override |
| Common * | getCommonPtr () const |
Protected Member Functions inherited from clang::RedeclarableTemplateDecl | |
| template<class EntryType > | |
| SpecEntryTraits< EntryType > ::DeclType * | findSpecializationImpl (llvm::FoldingSetVector< EntryType > &Specs, ArrayRef< TemplateArgument > Args, void *&InsertPos) |
| template<class Derived , class EntryType > | |
| void | addSpecializationImpl (llvm::FoldingSetVector< EntryType > &Specs, EntryType *Entry, void *InsertPos) |
| CommonBase * | getCommonPtr () const |
| Retrieves the "common" pointer shared by all (re-)declarations of the same template. More... | |
| RedeclarableTemplateDecl (Kind DK, ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
Protected Member Functions inherited from clang::TemplateDecl | |
| TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name) | |
| TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params) | |
| TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
Protected Member Functions inherited from clang::NamedDecl | |
| NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
Protected Member Functions inherited from clang::Decl | |
| void * | operator new (std::size_t Size, const ASTContext &Ctx, unsigned ID, std::size_t Extra=0) |
| Allocate memory for a deserialized declaration. More... | |
| void * | operator new (std::size_t Size, const ASTContext &Ctx, DeclContext *Parent, std::size_t Extra=0) |
| Allocate memory for a non-deserialized declaration. More... | |
| Decl (Kind DK, DeclContext *DC, SourceLocation L) | |
| Decl (Kind DK, EmptyShell Empty) | |
| virtual | ~Decl () |
| void | updateOutOfDate (IdentifierInfo &II) const |
| Update a potentially out-of-date declaration. More... | |
| Linkage | getCachedLinkage () const |
| void | setCachedLinkage (Linkage L) const |
| bool | hasCachedLinkage () const |
| void | setModulePrivate (bool MP=true) |
| Specify whether this declaration was marked as being private to the module in which it was defined. More... | |
| void | setOwningModuleID (unsigned ID) |
| Set the owning module ID. More... | |
| bool | hasLocalOwningModuleStorage () const |
| ASTMutationListener * | getASTMutationListener () const |
Protected Member Functions inherited from clang::Redeclarable< RedeclarableTemplateDecl > | |
| RedeclarableTemplateDecl * | getNextRedeclaration () const |
Friends | |
| class | ASTDeclReader |
| class | ASTDeclWriter |
Additional Inherited Members | |
Protected Types inherited from clang::Decl | |
| enum | { TopLevelDeclInObjCContainerFlag = 0x01, ModulePrivateFlag = 0x02 } |
Static Protected Member Functions inherited from clang::RedeclarableTemplateDecl | |
| template<typename EntryType > | |
| static SpecIterator< EntryType > | makeSpecIterator (llvm::FoldingSetVector< EntryType > &Specs, bool isEnd) |
Static Protected Member Functions inherited from clang::Redeclarable< RedeclarableTemplateDecl > | |
| static DeclLink | PreviousDeclLink (RedeclarableTemplateDecl *D) |
| static DeclLink | LatestDeclLink (const ASTContext &Ctx) |
Protected Attributes inherited from clang::RedeclarableTemplateDecl | |
| CommonBase * | Common |
| Pointer to the common data shared by all declarations of this template. More... | |
Protected Attributes inherited from clang::TemplateDecl | |
| NamedDecl * | TemplatedDecl |
| TemplateParameterList * | TemplateParams |
Protected Attributes inherited from clang::Decl | |
| llvm::PointerIntPair< Decl *, 2, unsigned > | NextInContextAndBits |
| The next declaration within the same lexical DeclContext. More... | |
| unsigned | Access: 2 |
| Access - Used by C++ decls for the access specifier. More... | |
| unsigned | FromASTFile: 1 |
| Whether this declaration was loaded from an AST file. More... | |
| unsigned | Hidden: 1 |
| Whether this declaration is hidden from normal name lookup, e.g., because it is was loaded from an AST file is either module-private or because its submodule has not been made visible. More... | |
| unsigned | IdentifierNamespace: 12 |
| IdentifierNamespace - This specifies what IDNS_* namespace this lives in. More... | |
| unsigned | CacheValidAndLinkage: 3 |
| If 0, we have not computed the linkage of this declaration. More... | |
Protected Attributes inherited from clang::Redeclarable< RedeclarableTemplateDecl > | |
| DeclLink | RedeclLink |
| Points to the next redeclaration in the chain. More... | |
| RedeclarableTemplateDecl * | First |
Declaration of a class template.
Definition at line 1930 of file DeclTemplate.h.
Definition at line 2103 of file DeclTemplate.h.
| typedef llvm::iterator_range<spec_iterator> clang::ClassTemplateDecl::spec_range |
Definition at line 2104 of file DeclTemplate.h.
|
inlineprotected |
Definition at line 1968 of file DeclTemplate.h.
Referenced by Create(), and CreateDeserialized().
| void ClassTemplateDecl::AddPartialSpecialization | ( | ClassTemplatePartialSpecializationDecl * | D, |
| void * | InsertPos | ||
| ) |
Insert the specified partial specialization knowing that it is not already in.
InsertPos must be obtained from findPartialSpecialization.
Definition at line 402 of file DeclTemplate.cpp.
References clang::Decl::getASTMutationListener(), getPartialSpecializations(), and clang::Decl::isCanonicalDecl().
| void ClassTemplateDecl::AddSpecialization | ( | ClassTemplateSpecializationDecl * | D, |
| void * | InsertPos | ||
| ) |
Insert the specified specialization knowing that it is not already in.
InsertPos must be obtained from findSpecialization.
Definition at line 391 of file DeclTemplate.cpp.
References getSpecializations().
Definition at line 2119 of file DeclTemplate.h.
References clang::Decl::getKind().
Definition at line 2120 of file DeclTemplate.h.
|
static |
Create a class template node.
Definition at line 331 of file DeclTemplate.cpp.
References AdoptTemplateParameterList(), AttributeLangSupport::C, ClassTemplateDecl(), and clang::Redeclarable< decl_type >::setPreviousDecl().
Referenced by clang::Sema::CheckClassTemplate(), and clang::ASTNodeImporter::VisitClassTemplateDecl().
|
static |
Create an empty class template node.
Definition at line 345 of file DeclTemplate.cpp.
References AttributeLangSupport::C, and ClassTemplateDecl().
| ClassTemplatePartialSpecializationDecl * ClassTemplateDecl::findPartialSpecialization | ( | ArrayRef< TemplateArgument > | Args, |
| void *& | InsertPos | ||
| ) |
Return the partial specialization with the provided arguments if it exists, otherwise return the insertion point.
Definition at line 397 of file DeclTemplate.cpp.
References clang::RedeclarableTemplateDecl::findSpecializationImpl(), and getPartialSpecializations().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), and clang::TemplateDeclInstantiator::InstantiateClassTemplatePartialSpecialization().
| ClassTemplatePartialSpecializationDecl * ClassTemplateDecl::findPartialSpecialization | ( | QualType | T | ) |
Find a class template partial specialization with the given type T.
| T | a dependent type that names a specialization of this class template. |
T, or NULL if no such partial specialization exists. Definition at line 431 of file DeclTemplate.cpp.
References clang::begin(), Context, clang::end(), clang::Decl::getASTContext(), getPartialSpecializations(), clang::ASTContext::hasSameType(), and P.
| ClassTemplatePartialSpecializationDecl * ClassTemplateDecl::findPartialSpecInstantiatedFromMember | ( | ClassTemplatePartialSpecializationDecl * | D | ) |
Find a class template partial specialization which was instantiated from the given member partial specialization.
| D | a member class template partial specialization. |
Definition at line 447 of file DeclTemplate.cpp.
References clang::begin(), clang::end(), clang::CXXRecordDecl::getCanonicalDecl(), getPartialSpecializations(), and P.
| ClassTemplateSpecializationDecl * ClassTemplateDecl::findSpecialization | ( | ArrayRef< TemplateArgument > | Args, |
| void *& | InsertPos | ||
| ) |
Return the specialization with the provided arguments if it exists, otherwise return the insertion point.
Definition at line 386 of file DeclTemplate.cpp.
References clang::RedeclarableTemplateDecl::findSpecializationImpl(), and getSpecializations().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnExplicitInstantiation(), and clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl().
|
inlineoverridevirtual |
Retrieves the canonical declaration of this template.
Reimplemented from clang::RedeclarableTemplateDecl.
Definition at line 2014 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCanonicalDecl().
Referenced by clang::Sema::FindInstantiatedDecl(), isInstantiationOf(), clang::Sema::isStdInitializerList(), MatchesFriend(), and clang::ASTDeclWriter::VisitClassTemplateSpecializationDecl().
|
inline |
Definition at line 2018 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCanonicalDecl().
|
inlineprotected |
Definition at line 1975 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCommonPtr().
Referenced by getInjectedClassNameSpecialization(), getPartialSpecializations(), getSpecializations(), LoadLazySpecializations(), clang::ASTDeclReader::VisitClassTemplateDecl(), and clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl().
| QualType ClassTemplateDecl::getInjectedClassNameSpecialization | ( | ) |
Retrieve the template specialization type of the injected-class-name for this class template.
The injected-class-name for a class template X is X<template-args>, where template-args is formed from the template arguments that correspond to the template parameters of X. For example:
Definition at line 462 of file DeclTemplate.cpp.
References Context, GenerateInjectedTemplateArgs(), clang::Decl::getASTContext(), getCommonPtr(), clang::TemplateDecl::getTemplateParameters(), clang::ASTContext::getTemplateSpecializationType(), clang::ClassTemplateDecl::Common::InjectedClassNameType, clang::QualType::isNull(), and clang::TemplateParameterList::size().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::CheckClassTemplate(), and clang::ASTDeclReader::VisitClassTemplateDecl().
|
inline |
Definition at line 2046 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate().
Referenced by clang::Sema::CheckClassTemplate(), clang::Sema::InstantiateClassTemplateSpecialization(), and isInstantiationOf().
|
inline |
Definition at line 2038 of file DeclTemplate.h.
Referenced by LoadLazySpecializations().
|
inline |
Definition at line 2042 of file DeclTemplate.h.
|
protected |
Retrieve the set of partial specializations of this class template.
Definition at line 373 of file DeclTemplate.cpp.
References getCommonPtr(), LoadLazySpecializations(), and clang::ClassTemplateDecl::Common::PartialSpecializations.
Referenced by AddPartialSpecialization(), findPartialSpecialization(), findPartialSpecInstantiatedFromMember(), getPartialSpecializations(), and clang::Sema::InstantiateClassTemplateSpecialization().
| void ClassTemplateDecl::getPartialSpecializations | ( | SmallVectorImpl< ClassTemplatePartialSpecializationDecl * > & | PS | ) |
Retrieve the partial specializations as an ordered list.
Definition at line 418 of file DeclTemplate.cpp.
References getPartialSpecializations(), and P.
|
inline |
Retrieve the previous declaration of this class template, or NULL if no such declaration exists.
Definition at line 2025 of file DeclTemplate.h.
|
inline |
Retrieve the previous declaration of this class template, or NULL if no such declaration exists.
Definition at line 2032 of file DeclTemplate.h.
|
protected |
Retrieve the set of specializations of this class template.
Definition at line 367 of file DeclTemplate.cpp.
References getCommonPtr(), LoadLazySpecializations(), and clang::ClassTemplateDecl::Common::Specializations.
Referenced by AddSpecialization(), and findSpecialization().
|
inline |
Get the underlying class declarations of the template.
Definition at line 1984 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::CheckClassTemplate(), getLVForClassMember(), clang::Sema::InstantiateClassTemplateSpecialization(), clang::Sema::isStdInitializerList(), IsStructurallyEquivalent(), clang::Sema::propagateDLLAttrToBaseClassTemplate(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTDeclReader::VisitClassTemplateDecl(), and clang::ASTDeclReader::VisitCXXRecordDeclImpl().
|
inline |
Returns whether this template declaration defines the primary class pattern.
Definition at line 1990 of file DeclTemplate.h.
| void ClassTemplateDecl::LoadLazySpecializations | ( | ) | const |
Load any lazily-loaded specializations from the external source.
Definition at line 351 of file DeclTemplate.cpp.
References Context, clang::Decl::getASTContext(), getCommonPtr(), clang::ExternalASTSource::GetExternalDecl(), clang::ASTContext::getExternalSource(), getMostRecentDecl(), I, and clang::ClassTemplateDecl::Common::LazySpecializations.
Referenced by getPartialSpecializations(), and getSpecializations().
|
overrideprotectedvirtual |
Implements clang::RedeclarableTemplateDecl.
Definition at line 379 of file DeclTemplate.cpp.
References clang::ASTContext::AddDeallocation(), and AttributeLangSupport::C.
|
inline |
Definition at line 2110 of file DeclTemplate.h.
|
inline |
Definition at line 2114 of file DeclTemplate.h.
|
inline |
Definition at line 2106 of file DeclTemplate.h.
|
friend |
Definition at line 2122 of file DeclTemplate.h.
|
friend |
Definition at line 2123 of file DeclTemplate.h.
1.8.6