clang 10.0.0git

Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::CXXDeductionGuideDecl Class Reference

Represents a C++ deduction guide declaration. More...

`#include "clang/AST/DeclCXX.h"`

Inheritance diagram for clang::CXXDeductionGuideDecl:
[legend]
Collaboration diagram for clang::CXXDeductionGuideDecl:
[legend]

## Public Member Functions
ExplicitSpecifier | getExplicitSpecifier ()
const ExplicitSpecifier | getExplicitSpecifier () const
bool | isExplicit () const
| Return true if the declartion is already resolved to be explicit. More...
TemplateDecl * | getDeducedTemplate () const
| Get the template for which this guide performs deduction. More...
void | setIsCopyDeductionCandidate (bool isCDC=true)
bool | isCopyDeductionCandidate () const
Public Member Functions inherited from clang::FunctionDecl
DeclarationNameInfo | getNameInfo () const
void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const override
| Appends a human-readable name for this declaration into the given stream. More...
void | setRangeEnd (SourceLocation E)
SourceLocation | getEllipsisLoc () const
| Returns the location of the ellipsis of a variadic function. More...
SourceRange | getSourceRange () const override LLVM_READONLY
| Source range that this declaration covers. More...
bool | hasBody (const FunctionDecl *&Definition) const
| Returns true if the function has a body. More...
bool | hasBody () const override
| Returns true if this `Decl` represents a declaration for a body of code, such as a function or method definition. More...
bool | hasTrivialBody () const
| Returns whether the function has a trivial body that does not require any specific codegen. More...
bool | isDefined (const FunctionDecl *&Definition) const
| Returns true if the function has a definition that does not need to be instantiated. More...
virtual bool | isDefined () const
FunctionDecl * | getDefinition ()
| Get the definition for this declaration. More...
const FunctionDecl * | getDefinition () const
Stmt * | getBody (const FunctionDecl *&Definition) const
| Retrieve the body (definition) of the function. More...
Stmt * | getBody () const override
| 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...
bool | isThisDeclarationADefinition () const
| Returns whether this specific declaration of the function is also a definition that does not contain uninstantiated body. More...
bool | doesThisDeclarationHaveABody () const
| Returns whether this specific declaration of the function has a body. More...
void | setBody (Stmt *B)
void | setLazyBody (uint64_t Offset)
void | setDefaultedFunctionInfo (DefaultedFunctionInfo *Info)
DefaultedFunctionInfo * | getDefaultedFunctionInfo () const
bool | isVariadic () const
| Whether this function is variadic. More...
bool | isVirtualAsWritten () const
| Whether this function is marked as virtual explicitly. More...
void | setVirtualAsWritten (bool V)
| State that this function is marked as virtual explicitly. More...
bool | isPure () const
| Whether this virtual function is pure, i.e. More...
void | setPure (bool P=true)
bool | isLateTemplateParsed () const
| Whether this templated function will be late parsed. More...
void | setLateTemplateParsed (bool ILT=true)
| State that this templated function will be late parsed. More...
bool | isTrivial () const
| Whether this function is "trivial" in some specialized C++ senses. More...
void | setTrivial (bool IT)
bool | isTrivialForCall () const
void | setTrivialForCall (bool IT)
bool | isDefaulted () const
| Whether this function is defaulted per C++0x. More...
void | setDefaulted (bool D=true)
bool | isExplicitlyDefaulted () const
| Whether this function is explicitly defaulted per C++0x. More...
void | setExplicitlyDefaulted (bool ED=true)
| State that this function is explicitly defaulted per C++0x. More...
bool | isUserProvided () const
| True if this method is user-declared and was not deleted or defaulted on its first declaration. More...
bool | hasImplicitReturnZero () const
| Whether falling off this function implicitly returns null/zero. More...
void | setHasImplicitReturnZero (bool IRZ)
| State that falling off this function implicitly returns null/zero. More...
bool | hasPrototype () const
| Whether this function has a prototype, either because one was explicitly written or because it was "inherited" by merging a declaration without a prototype with a declaration that has a prototype. More...
bool | hasWrittenPrototype () const
| Whether this function has a written prototype. More...
void | setHasWrittenPrototype (bool P=true)
| State that this function has a written prototype. More...
bool | hasInheritedPrototype () const
| Whether this function inherited its prototype from a previous declaration. More...
void | setHasInheritedPrototype (bool P=true)
| State that this function inherited its prototype from a previous declaration. More...
bool | isConstexpr () const
| Whether this is a (C++11) constexpr function or constexpr constructor. More...
void | setConstexprKind (ConstexprSpecKind CSK)
ConstexprSpecKind | getConstexprKind () const
bool | isConstexprSpecified () const
bool | isConsteval () const
bool | instantiationIsPending () const
| Whether the instantiation of this function is pending. More...
void | setInstantiationIsPending (bool IC)
| State that the instantiation of this function is pending. More...
bool | usesSEHTry () const
| Indicates the function uses __try. More...
void | setUsesSEHTry (bool UST)
bool | usesFPIntrin () const
| Indicates the function uses Floating Point constrained intrinsics. More...
void | setUsesFPIntrin (bool Val)
bool | isDeleted () const
| Whether this function has been deleted. More...
bool | isDeletedAsWritten () const
void | setDeletedAsWritten (bool D=true)
bool | isMain () const
| Determines whether this function is "main", which is the entry point into an executable program. More...
bool | isMSVCRTEntryPoint () const
| Determines whether this function is a MSVCRT user defined entry point. More...
bool | isReservedGlobalPlacementOperator () const
| Determines whether this operator new or delete is one of the reserved global placement operators: void *operator new(size_t, void *); void *operator new[](size_t, void *); void operator delete(void *, void *); void operator delete[](void *, void *); These functions have special behavior under [new.delete.placement]: These functions are reserved, a C++ program may not define functions that displace the versions in the Standard C++ library. More...
bool | isReplaceableGlobalAllocationFunction (bool *IsAligned=nullptr) const
| Determines whether this function is one of the replaceable global allocation functions: void *operator new(size_t); void *operator new(size_t, const std::nothrow_t &) noexcept; void *operator new[](size_t); void *operator new[](size_t, const std::nothrow_t &) noexcept; void operator delete(void *) noexcept; void operator delete(void *, std::size_t) noexcept; [C++1y] void operator delete(void *, const std::nothrow_t &) noexcept; void operator delete[](void *) noexcept; void operator delete[](void *, std::size_t) noexcept; [C++1y] void operator delete[](void *, const std::nothrow_t &) noexcept; These functions have special behavior under C++1y [expr.new]: An implementation is allowed to omit a call to a replaceable global allocation function. More...
bool | isInlineBuiltinDeclaration () const
| Determine if this function provides an inline implementation of a builtin. More...
bool | isDestroyingOperatorDelete () const
| Determine whether this is a destroying operator delete. More...
LanguageLinkage | getLanguageLinkage () const
| Compute the language linkage. More...
bool | isExternC () const
| Determines whether this function is a function with external, C linkage. More...
bool | isInExternCContext () const
| Determines whether this function's context is, or is nested within, a C++ extern "C" linkage spec. More...
bool | isInExternCXXContext () const
| Determines whether this function's context is, or is nested within, a C++ extern "C++" linkage spec. More...
bool | isGlobal () const
| Determines whether this is a global function. More...
bool | isNoReturn () const
| Determines whether this function is known to be 'noreturn', through an attribute on its declaration or its type. More...
bool | hasSkippedBody () const
| True if the function was a definition but its body was skipped. More...
void | setHasSkippedBody (bool Skipped=true)
bool | willHaveBody () const
| True if this function will eventually have a body, once it's fully parsed. More...
void | setWillHaveBody (bool V=true)
bool | isMultiVersion () const
| True if this function is considered a multiversioned function. More...
void | setIsMultiVersion (bool V=true)
| Sets the multiversion state for this declaration and all of its redeclarations. More...
MultiVersionKind | getMultiVersionKind () const
| Gets the kind of multiversioning attribute this declaration has. More...
bool | isCPUDispatchMultiVersion () const
| True if this function is a multiversioned dispatch function as a part of the cpu_specific/cpu_dispatch functionality. More...
bool | isCPUSpecificMultiVersion () const
| True if this function is a multiversioned processor specific function as a part of the cpu_specific/cpu_dispatch functionality. More...
bool | isTargetMultiVersion () const
| True if this function is a multiversioned dispatch function as a part of the target functionality. More...
void | getAssociatedConstraints (SmallVectorImpl< const Expr *> &AC) const
| Get the associated-constraints of this function declaration. More...
void | setPreviousDeclaration (FunctionDecl *PrevDecl)
FunctionDecl * | getCanonicalDecl () override
| Retrieves the "canonical" declaration of the given declaration. More...
const FunctionDecl * | getCanonicalDecl () const
unsigned | getBuiltinID (bool ConsiderWrapperFunctions=false) const
| Returns a value indicating whether this function corresponds to a builtin function. More...
ArrayRef< ParmVarDecl * > | parameters () const
MutableArrayRef< ParmVarDecl * > | parameters ()
bool | param_empty () const
param_iterator | param_begin ()
param_iterator | param_end ()
param_const_iterator | param_begin () const
param_const_iterator | param_end () const
size_t | param_size () const
unsigned | getNumParams () const
| Return the number of parameters this function must have based on its FunctionType. More...
const ParmVarDecl * | getParamDecl (unsigned i) const
ParmVarDecl * | getParamDecl (unsigned i)
void | setParams (ArrayRef< ParmVarDecl *> NewParamInfo)
unsigned | getMinRequiredArguments () const
| Returns the minimum number of arguments needed to call this function. More...
FunctionTypeLoc | getFunctionTypeLoc () const
| Find the source location information for how the type of this function was written. More...
QualType | getReturnType () const
SourceRange | getReturnTypeSourceRange () const
| Attempt to compute an informative source range covering the function return type. More...
SourceRange | getParametersSourceRange () const
| Attempt to compute an informative source range covering the function parameters, including the ellipsis of a variadic function. More...
QualType | getDeclaredReturnType () const
| Get the declared return type, which may differ from the actual return type if the return type is deduced. More...
ExceptionSpecificationType | getExceptionSpecType () const
| Gets the ExceptionSpecificationType as declared. More...
SourceRange | getExceptionSpecSourceRange () const
| Attempt to compute an informative source range covering the function exception specification, if any. More...
QualType | getCallResultType () const
| Determine the type of an expression that calls this function. More...
StorageClass | getStorageClass () const
| Returns the storage class as written in the source. More...
void | setStorageClass (StorageClass SClass)
| Sets the storage class as written in the source. More...
bool | isInlineSpecified () const
| Determine whether the "inline" keyword was specified for this function. More...
void | setInlineSpecified (bool I)
| Set whether the "inline" keyword was specified for this function. More...
void | setImplicitlyInline (bool I=true)
| Flag that this function is implicitly inline. More...
bool | isInlined () const
| Determine whether this function should be inlined, because it is either marked "inline" or "constexpr" or is a member function of a class that was defined in the class body. More...
bool | isInlineDefinitionExternallyVisible () const
| For an inline function definition in C, or for a gnu_inline function in C++, determine whether the definition will be externally visible. More...
bool | isMSExternInline () const
| The combination of the extern and inline keywords under MSVC forces the function to be required. More...
bool | doesDeclarationForceExternallyVisibleDefinition () const
| For a function declaration in C or C++, determine whether this declaration causes the definition to be externally visible. More...
bool | isStatic () const
bool | isOverloadedOperator () const
| Whether this function declaration represents an C++ overloaded operator, e.g., "operator+". More...
OverloadedOperatorKind | getOverloadedOperator () const
| getOverloadedOperator - Which C++ overloaded operator this function represents, if any. More...
const IdentifierInfo * | getLiteralIdentifier () const
| getLiteralIdentifier - The literal suffix identifier this function represents, if any. More...
FunctionDecl * | getInstantiatedFromMemberFunction () const
| If this function is an instantiation of a member function of a class template specialization, retrieves the function from which it was instantiated. More...
TemplatedKind | getTemplatedKind () const
| What kind of templated function this is. More...
MemberSpecializationInfo * | getMemberSpecializationInfo () const
| If this function is an instantiation of a member function of a class template specialization, retrieves the member specialization information. More...
void | setInstantiationOfMemberFunction (FunctionDecl *FD, TemplateSpecializationKind TSK)
| Specify that this record is an instantiation of the member function FD. More...
FunctionTemplateDecl * | getDescribedFunctionTemplate () const
| Retrieves the function template that is described by this function declaration. More...
void | setDescribedFunctionTemplate (FunctionTemplateDecl *Template)
bool | isFunctionTemplateSpecialization () const
| Determine whether this function is a function template specialization. More...
FunctionTemplateSpecializationInfo * | getTemplateSpecializationInfo () const
| If this function is actually a function template specialization, retrieve information about this function template specialization. More...
bool | isImplicitlyInstantiable () const
| Determines whether this function is a function template specialization or a member of a class template specialization that can be implicitly instantiated. More...
bool | isTemplateInstantiation () const
| Determines if the given function was instantiated from a function template. More...
FunctionDecl * | getTemplateInstantiationPattern () const
| Retrieve the function declaration from which this function could be instantiated, if it is an instantiation (rather than a non-template or a specialization, for example). More...
FunctionTemplateDecl * | getPrimaryTemplate () const
| Retrieve the primary template that this function template specialization either specializes or was instantiated from. More...
const TemplateArgumentList * | getTemplateSpecializationArgs () const
| Retrieve the template arguments used to produce this function template specialization from the primary template. More...
const ASTTemplateArgumentListInfo * | getTemplateSpecializationArgsAsWritten () const
| Retrieve the template argument list as written in the sources, if any. More...
void | setFunctionTemplateSpecialization (FunctionTemplateDecl *Template, const TemplateArgumentList *TemplateArgs, void *InsertPos, TemplateSpecializationKind TSK=TSK_ImplicitInstantiation, const TemplateArgumentListInfo *TemplateArgsAsWritten=nullptr, SourceLocation PointOfInstantiation=SourceLocation())
| Specify that this function declaration is actually a function template specialization. More...
void | setDependentTemplateSpecialization (ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo &TemplateArgs)
| Specifies that this function declaration is actually a dependent function template specialization. More...
DependentFunctionTemplateSpecializationInfo * | getDependentSpecializationInfo () const
TemplateSpecializationKind | getTemplateSpecializationKind () const
| Determine what kind of template instantiation this function represents. More...
TemplateSpecializationKind | getTemplateSpecializationKindForInstantiation () const
| Determine the kind of template specialization this function represents for the purpose of template instantiation. More...
void | setTemplateSpecializationKind (TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation())
| Determine what kind of template instantiation this function represents. More...
SourceLocation | getPointOfInstantiation () const
| Retrieve the (first) point of instantiation of a function template specialization or a member of a class template specialization. More...
bool | isOutOfLine () const override
| Determine whether this is or was instantiated from an out-of-line definition of a member function. More...
unsigned | getMemoryFunctionKind () const
| Identify a memory copying or setting function. More...
unsigned | getODRHash ()
| Returns ODRHash of the function. More...
unsigned | getODRHash () const
| Returns cached ODRHash of the function. More...
Public Member Functions inherited from clang::DeclaratorDecl
TypeSourceInfo * | getTypeSourceInfo () const
void | setTypeSourceInfo (TypeSourceInfo *TI)
SourceLocation | getInnerLocStart () const
| Return start of source range ignoring outer template declarations. More...
void | setInnerLocStart (SourceLocation L)
SourceLocation | getOuterLocStart () const
| Return start of source range taking into account any outer template declarations. More...
SourceLocation | getBeginLoc () const LLVM_READONLY
NestedNameSpecifier * | getQualifier () const
| Retrieve the nested-name-specifier that qualifies the name of this declaration, if it was present in the source. More...
NestedNameSpecifierLoc | getQualifierLoc () const
| Retrieve the nested-name-specifier (with source-location information) that qualifies the name of this declaration, if it was present in the source. More...
void | setQualifierInfo (NestedNameSpecifierLoc QualifierLoc)
Expr * | getTrailingRequiresClause ()
| Get the constraint-expression introduced by the trailing requires-clause in the function/member declaration, or null if no requires-clause was provided. More...
const Expr * | getTrailingRequiresClause () const
void | setTrailingRequiresClause (Expr *TrailingRequiresClause)
unsigned | getNumTemplateParameterLists () const
TemplateParameterList * | getTemplateParameterList (unsigned index) const
void | setTemplateParameterListsInfo (ASTContext &Context, ArrayRef< TemplateParameterList *> TPLists)
SourceLocation | getTypeSpecStartLoc () const
SourceLocation | getTypeSpecEndLoc () const
Public Member Functions inherited from clang::ValueDecl
QualType | getType () const
void | setType (QualType newType)
bool | isWeak () const
| Determine whether this symbol is weakly-imported, or declared with the weak or weak-ref attr. More...
Public Member Functions inherited from clang::NamedDecl
IdentifierInfo * | getIdentifier () const
| Get the identifier that names this declaration, if there is one. More...
StringRef | getName () const
| Get the name of identifier for this declaration as a StringRef. More...
std::string | getNameAsString () const
| 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...
virtual void | printName (raw_ostream &os) const
DeclarationName | getDeclName () const
| 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
| Returns a human-readable qualified name for this declaration, like A::B::i, for i being member of namespace A::B. More...
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const
void | printNestedNameSpecifier (raw_ostream &OS) const
| Print only the nested name specifier part of a fully-qualified name, including the '::' at the end. More...
void | printNestedNameSpecifier (raw_ostream &OS, const PrintingPolicy &Policy) const
std::string | getQualifiedNameAsString () const
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 | 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
bool | isExternallyDeclarable () const
| Determine whether this declaration can be redeclared in a different translation unit. More...
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
| Decl ()=delete
| Decl (const Decl &)=delete
| Decl (Decl &&)=delete
Decl & | operator= (const Decl &)=delete
Decl & | operator= (Decl &&)=delete
SourceLocation | getBeginLoc () const LLVM_READONLY
SourceLocation | getEndLoc () 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 any (re-)declaration of the entity 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)
ExternalSourceSymbolAttr * | getExternalSourceSymbolAttr () const
| Looks on this and related declarations for an applicable external source symbol attribute. More...
bool | isModulePrivate () const
| Whether this declaration was marked as being private to the module in which it was defined. More...
bool | hasDefiningAttr () const
| Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'. More...
const Attr * | getDefiningAttr () const
| Return this declaration's defining attribute if it has one. More...
AvailabilityResult | getAvailability (std::string *Message=nullptr, VersionTuple EnclosingVersion=VersionTuple(), StringRef *RealizedPlatform=nullptr) const
| Determine the availability of the given declaration. More...
VersionTuple | getVersionIntroduced () const
| Retrieve the version of the target platform in which this declaration was introduced. 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 this Decl was loaded from. 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)
bool | hasOwningModule () const
| Is this declaration owned by some module? More...
Module * | getOwningModule () const
| Get the module that owns this declaration (for visibility purposes). More...
Module * | getOwningModuleForLinkage (bool IgnoreLinkage=false) const
| Get the module that owns this declaration for linkage purposes. More...
bool | isHidden () const
| Determine whether this declaration might be hidden from name lookup. More...
void | setVisibleDespiteOwningModule ()
| Set that this declaration is globally visible, even if it came from a module that is not visible. More...
ModuleOwnershipKind | getModuleOwnershipKind () const
| Get the kind of module ownership for this declaration. More...
void | setModuleOwnershipKind (ModuleOwnershipKind MOK)
| Set whether this declaration is hidden from name lookup. More...
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
void | setDeclContext (DeclContext *DC)
| setDeclContext - Set both the semantic and lexical DeclContext to DC. More...
void | setLexicalDeclContext (DeclContext *DC)
bool | isTemplated () const
| Determine whether this declaration is a templated entity (whether it is. More...
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 previous 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...
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...
TemplateDecl * | getDescribedTemplate () const
| If this is a declaration that describes some template, this method returns that template declaration. 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, bool Deserialize=false, ASTDumpOutputFormat OutputFormat=ADOF_Default) const
int64_t | getID () 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::DeclContext
| ~DeclContext ()
Decl::Kind | getDeclKind () const
const char * | getDeclKindName () const
DeclContext * | getParent ()
| getParent - Returns the containing DeclContext. More...
const DeclContext * | getParent () const
DeclContext * | getLexicalParent ()
| getLexicalParent - Returns the containing lexical DeclContext. More...
const DeclContext * | getLexicalParent () const
DeclContext * | getLookupParent ()
| Find the parent context of this context that will be used for unqualified name lookup. More...
const DeclContext * | getLookupParent () const
ASTContext & | getParentASTContext () const
bool | isClosure () const
const BlockDecl * | getInnermostBlockDecl () const
| Return this DeclContext if it is a BlockDecl. More...
bool | isObjCContainer () const
bool | isFunctionOrMethod () const
bool | isLookupContext () const
| Test whether the context supports looking up names. More...
bool | isFileContext () const
bool | isTranslationUnit () const
bool | isRecord () const
bool | isNamespace () const
bool | isStdNamespace () const
bool | isInlineNamespace () const
bool | isDependentContext () const
| Determines whether this context is dependent on a template parameter. More...
bool | isTransparentContext () const
| isTransparentContext - Determines whether this context is a "transparent" context, meaning that the members declared in this context are semantically declared in the nearest enclosing non-transparent (opaque) context but are lexically declared in this context. More...
bool | isExternCContext () const
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage. More...
const LinkageSpecDecl * | getExternCContext () const
| Retrieve the nearest enclosing C linkage specification context. More...
bool | isExternCXXContext () const
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage. More...
bool | Equals (const DeclContext *DC) const
| Determine whether this declaration context is equivalent to the declaration context DC. More...
bool | Encloses (const DeclContext *DC) const
| Determine whether this declaration context encloses the declaration context DC. More...
Decl * | getNonClosureAncestor ()
| Find the nearest non-closure ancestor of this context, i.e. More...
const Decl * | getNonClosureAncestor () const
DeclContext * | getPrimaryContext ()
| getPrimaryContext - There may be many different declarations of the same entity (including forward declarations of classes, multiple definitions of namespaces, etc.), each with a different set of declarations. More...
const DeclContext * | getPrimaryContext () const
DeclContext * | getRedeclContext ()
| getRedeclContext - Retrieve the context in which an entity conflicts with other entities of the same name, or where it is a redeclaration if the two entities are compatible. More...
const DeclContext * | getRedeclContext () const
DeclContext * | getEnclosingNamespaceContext ()
| Retrieve the nearest enclosing namespace context. More...
const DeclContext * | getEnclosingNamespaceContext () const
RecordDecl * | getOuterLexicalRecordContext ()
| Retrieve the outermost lexically enclosing record context. More...
const RecordDecl * | getOuterLexicalRecordContext () const
bool | InEnclosingNamespaceSetOf (const DeclContext *NS) const
| Test if this context is part of the enclosing namespace set of the context NS, as defined in C++0x [namespace.def]p9. More...
void | collectAllContexts (SmallVectorImpl< DeclContext *> &Contexts)
| Collects all of the declaration contexts that are semantically connected to this declaration context. More...
decl_range | decls () const
| decls_begin/decls_end - Iterate over the declarations stored in this context. More...
decl_iterator | decls_begin () const
decl_iterator | decls_end () const
bool | decls_empty () const
decl_range | noload_decls () const
| noload_decls_begin/end - Iterate over the declarations stored in this context that are currently loaded; don't attempt to retrieve anything from an external source. More...
decl_iterator | noload_decls_begin () const
decl_iterator | noload_decls_end () const
void | addDecl (Decl *D)
| Add the declaration D into this context. More...
void | addDeclInternal (Decl *D)
| Add the declaration D into this context, but suppress searches for external declarations with the same name. More...
void | addHiddenDecl (Decl *D)
| Add the declaration D to this context without modifying any lookup tables. More...
void | removeDecl (Decl *D)
| Removes a declaration from this context. More...
bool | containsDecl (Decl *D) const
| Checks whether a declaration is in this context. More...
bool | containsDeclAndLoad (Decl *D) const
| Checks whether a declaration is in this context. More...
lookup_result | lookup (DeclarationName Name) const
| lookup - Find the declarations (if any) with the given Name in this context. More...
lookup_result | noload_lookup (DeclarationName Name)
| Find the declarations with the given name that are visible within this context; don't attempt to retrieve anything from an external source. More...
void | localUncachedLookup (DeclarationName Name, SmallVectorImpl< NamedDecl *> &Results)
| A simplistic name lookup mechanism that performs name lookup into this declaration context without consulting the external source. More...
void | makeDeclVisibleInContext (NamedDecl *D)
| Makes a declaration visible within this context. More...
lookups_range | lookups () const
lookups_range | noload_lookups (bool PreserveInternalState) const
all_lookups_iterator | lookups_begin () const
| Iterators over all possible lookups within this context. More...
all_lookups_iterator | lookups_end () const
all_lookups_iterator | noload_lookups_begin () const
| Iterators over all possible lookups within this context that are currently loaded; don't attempt to retrieve anything from an external source. More...
all_lookups_iterator | noload_lookups_end () const
udir_range | using_directives () const
| Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context. More...
ddiag_range | ddiags () const
void | setMustBuildLookupTable ()
| Mark that there are external lexical declarations that we need to include in our lookup table (and that are not available as external visible lookups). More...
StoredDeclsMap * | getLookupPtr () const
| Retrieve the internal representation of the lookup structure. More...
StoredDeclsMap * | buildLookup ()
| Ensure the lookup structure is fully-built and return it. More...
bool | hasExternalLexicalStorage () const
| Whether this DeclContext has external storage containing additional declarations that are lexically in this context. More...
void | setHasExternalLexicalStorage (bool ES=true) const
| State whether this DeclContext has external storage for declarations lexically in this context. More...
bool | hasExternalVisibleStorage () const
| Whether this DeclContext has external storage containing additional declarations that are visible in this context. More...
void | setHasExternalVisibleStorage (bool ES=true) const
| State whether this DeclContext has external storage for declarations visible in this context. More...
bool | isDeclInLexicalTraversal (const Decl *D) const
| Determine whether the given declaration is stored in the list of declarations lexically within this context. More...
bool | setUseQualifiedLookup (bool use=true) const
bool | shouldUseQualifiedLookup () const
void | dumpDeclContext () const
void | dumpLookups () const
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false, bool Deserialize=false) const
Public Member Functions inherited from clang::Redeclarable< FunctionDecl >
| Redeclarable (const ASTContext &Ctx)
FunctionDecl * | getPreviousDecl ()
| Return the previous declaration of this declaration or NULL if this is the first declaration. More...
const FunctionDecl * | getPreviousDecl () const
FunctionDecl * | getFirstDecl ()
| Return the first declaration of this declaration or itself if this is the only declaration. More...
const FunctionDecl * | 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...
FunctionDecl * | getMostRecentDecl ()
| Returns the most recent (re)declaration of this declaration. More...
const FunctionDecl * | getMostRecentDecl () const
| Returns the most recent (re)declaration of this declaration. More...
void | setPreviousDecl (FunctionDecl *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 CXXDeductionGuideDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation StartLoc, ExplicitSpecifier ES, const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo, SourceLocation EndLocation)
static CXXDeductionGuideDecl * | CreateDeserialized (ASTContext &C, unsigned ID)
static bool | classof (const Decl *D)
static bool | classofKind (Kind K)
Static Public Member Functions inherited from clang::FunctionDecl
static FunctionDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation StartLoc, SourceLocation NLoc, DeclarationName N, QualType T, TypeSourceInfo *TInfo, StorageClass SC, bool isInlineSpecified=false, bool hasWrittenPrototype=true, ConstexprSpecKind ConstexprKind=CSK_unspecified, Expr *TrailingRequiresClause=nullptr)
static FunctionDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation StartLoc, const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo, StorageClass SC, bool isInlineSpecified, bool hasWrittenPrototype, ConstexprSpecKind ConstexprKind, Expr *TrailingRequiresClause)
static FunctionDecl * | CreateDeserialized (ASTContext &C, unsigned ID)
static bool | classof (const Decl *D)
static bool | classofKind (Kind K)
static DeclContext * | castToDeclContext (const FunctionDecl *D)
static FunctionDecl * | castFromDeclContext (const DeclContext *DC)
Static Public Member Functions inherited from clang::DeclaratorDecl
static bool | classof (const Decl *D)
static bool | classofKind (Kind K)
Static Public Member Functions inherited from clang::ValueDecl
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)
Static Public Member Functions inherited from clang::DeclContext
static bool | classof (const Decl *D)
static bool | classof (const DeclContext *D)

## Friends
class | ASTDeclReader
class | ASTDeclWriter

## Additional Inherited Members
Public Types inherited from clang::FunctionDecl
enum | TemplatedKind { TK_NonTemplate, TK_FunctionTemplate, TK_MemberSpecialization, TK_FunctionTemplateSpecialization, TK_DependentFunctionTemplateSpecialization }
| The kind of templated function a FunctionDecl can be. More...
using | redecl_range = redeclarable_base::redecl_range
using | redecl_iterator = redeclarable_base::redecl_iterator
using | param_iterator = MutableArrayRef< ParmVarDecl * >::iterator
using | param_const_iterator = ArrayRef< ParmVarDecl * >::const_iterator
Public Types inherited from clang::NamedDecl
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue }
| Kinds of explicit visibility. More...
Public Types inherited from clang::Decl
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, IDNS_OMPReduction = 0x1000, IDNS_OMPMapper = 0x2000 }
| 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 | ModuleOwnershipKind : unsigned { ModuleOwnershipKind::Unowned, ModuleOwnershipKind::Visible, ModuleOwnershipKind::VisibleWhenImported, ModuleOwnershipKind::ModulePrivate }
| The kind of ownership a declaration has, for visibility purposes. More...
enum | FriendObjectKind { FOK_None, FOK_Declared, FOK_Undeclared }
using | attr_iterator = AttrVec::const_iterator
using | attr_range = llvm::iterator_range< attr_iterator >
using | redecl_range = llvm::iterator_range< redecl_iterator >
Public Types inherited from clang::DeclContext
using | decl_range = llvm::iterator_range< decl_iterator >
using | lookup_result = DeclContextLookupResult
using | lookup_iterator = lookup_result::iterator
using | lookups_range = llvm::iterator_range< all_lookups_iterator >
using | udir_iterator_base = llvm::iterator_adaptor_base< udir_iterator, lookup_iterator, std::random_access_iterator_tag, UsingDirectiveDecl * >
using | udir_range = llvm::iterator_range< udir_iterator >
using | ddiag_range = llvm::iterator_range< DeclContext::ddiag_iterator >
Public Types inherited from clang::Redeclarable< FunctionDecl >
using | redecl_range = llvm::iterator_range< redecl_iterator >
Protected Types inherited from clang::FunctionDecl
using | redeclarable_base = Redeclarable< FunctionDecl >
Protected Member Functions inherited from clang::FunctionDecl
| FunctionDecl (Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc, const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo, StorageClass S, bool isInlineSpecified, ConstexprSpecKind ConstexprKind, Expr *TrailingRequiresClause=nullptr)
FunctionDecl * | getNextRedeclarationImpl () override
| Returns the next redeclaration or itself if this is the only decl. More...
FunctionDecl * | getPreviousDeclImpl () override
| Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain. More...
FunctionDecl * | getMostRecentDeclImpl () override
| Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain. More...
Protected Member Functions inherited from clang::DeclaratorDecl
| DeclaratorDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T, TypeSourceInfo *TInfo, SourceLocation StartL)
Protected Member Functions inherited from clang::ValueDecl
| ValueDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T)
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 ()
| Specify that 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::DeclContext
| DeclContext (Decl::Kind K)
Protected Member Functions inherited from clang::Redeclarable< FunctionDecl >
FunctionDecl * | getNextRedeclaration () const
Static Protected Member Functions inherited from clang::DeclContext
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl *> Decls, bool FieldsAlreadyLoaded)
| Build up a chain of declarations. More...
Static Protected Member Functions inherited from clang::Redeclarable< FunctionDecl >
static DeclLink | PreviousDeclLink (FunctionDecl *D)
static DeclLink | LatestDeclLink (const ASTContext &Ctx)
Protected Attributes inherited from clang::Decl
llvm::PointerIntPair< Decl *, 2, ModuleOwnershipKind > | 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 | IdentifierNamespace: 14
| 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::DeclContext
union {
DeclContextBitfields DeclContextBits
TagDeclBitfields TagDeclBits
EnumDeclBitfields EnumDeclBits
RecordDeclBitfields RecordDeclBits
OMPDeclareReductionDeclBitfields OMPDeclareReductionDeclBits
FunctionDeclBitfields FunctionDeclBits
CXXConstructorDeclBitfields CXXConstructorDeclBits
ObjCMethodDeclBitfields ObjCMethodDeclBits
ObjCContainerDeclBitfields ObjCContainerDeclBits
LinkageSpecDeclBitfields LinkageSpecDeclBits
BlockDeclBitfields BlockDeclBits
}; |
| This anonymous union stores the bits belonging to DeclContext and classes deriving from it. More...
Decl * | FirstDecl = nullptr
| FirstDecl - The first declaration stored within this declaration context. More...
Decl * | LastDecl = nullptr
| LastDecl - The last declaration stored within this declaration context. More...
Protected Attributes inherited from clang::Redeclarable< FunctionDecl >
DeclLink | RedeclLink
| Points to the next redeclaration in the chain. More...
FunctionDecl * | First

## Detailed Description

Represents a C++ deduction guide declaration.

template<typename T> struct A { A(); A(T); };
A() -> A<int>;

In this example, there will be an explicit deduction guide from the second line, and implicit deduction guide templates synthesized from the constructors of `A`.

Definition at line 1842 of file DeclCXX.h.

## Member Function Documentation

## ◆ classof()

static bool clang::CXXDeductionGuideDecl::classof | ( | const Decl * | D | ) |
| inline static

Definition at line 1892 of file DeclCXX.h.

References clang::AccessSpecDecl::classofKind(), and clang::Decl::getKind().

## ◆ classofKind()

static bool clang::CXXDeductionGuideDecl::classofKind | ( | Kind | K | ) |
| inline static

Definition at line 1893 of file DeclCXX.h.

## ◆ Create()

CXXDeductionGuideDecl * CXXDeductionGuideDecl::Create | ( | ASTContext & | C,
|  | DeclContext * | DC,
|  | SourceLocation | StartLoc,
|  | ExplicitSpecifier | ES,
|  | const DeclarationNameInfo & | NameInfo,
|  | QualType | T,
|  | TypeSourceInfo * | TInfo,
|  | SourceLocation | EndLocation
| ) |  |
| static

Definition at line 1956 of file DeclCXX.cpp.

References clang::C.

Referenced by clang::TemplateDeclInstantiator::VisitFunctionDecl().

## ◆ CreateDeserialized()

CXXDeductionGuideDecl * CXXDeductionGuideDecl::CreateDeserialized | ( | ASTContext & | C,
|  | unsigned | ID
| ) |  |
| static

Definition at line 1964 of file DeclCXX.cpp.

References clang::C.

## ◆ getDeducedTemplate()

TemplateDecl* clang::CXXDeductionGuideDecl::getDeducedTemplate | ( |  | ) | const
| inline

Get the template for which this guide performs deduction.

Definition at line 1879 of file DeclCXX.h.

Referenced by getFirstInnerIndex().

## ◆ getExplicitSpecifier() [1/2]

ExplicitSpecifier clang::CXXDeductionGuideDecl::getExplicitSpecifier | ( |  | ) |
| inline

Definition at line 1872 of file DeclCXX.h.

Referenced by clang::ASTDeclWriter::VisitCXXDeductionGuideDecl().

## ◆ getExplicitSpecifier() [2/2]

const ExplicitSpecifier clang::CXXDeductionGuideDecl::getExplicitSpecifier | ( |  | ) | const
| inline

Definition at line 1873 of file DeclCXX.h.

## ◆ isCopyDeductionCandidate()

bool clang::CXXDeductionGuideDecl::isCopyDeductionCandidate | ( |  | ) | const
| inline

Definition at line 1887 of file DeclCXX.h.

Referenced by clang::ASTDeclWriter::VisitCXXDeductionGuideDecl().

## ◆ isExplicit()

bool clang::CXXDeductionGuideDecl::isExplicit | ( |  | ) | const
| inline

Return true if the declartion is already resolved to be explicit.

Definition at line 1876 of file DeclCXX.h.

References clang::ExplicitSpecifier::isExplicit().

## ◆ setIsCopyDeductionCandidate()

void clang::CXXDeductionGuideDecl::setIsCopyDeductionCandidate | ( | bool | isCDC = `true` | ) |
| inline

Definition at line 1883 of file DeclCXX.h.

Referenced by clang::ASTDeclReader::VisitCXXDeductionGuideDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

## Friends And Related Function Documentation

## ◆ ASTDeclReader

friend class ASTDeclReader
| friend

Definition at line 1862 of file DeclCXX.h.

## ◆ ASTDeclWriter

friend class ASTDeclWriter
| friend

Definition at line 1863 of file DeclCXX.h.

The documentation for this class was generated from the following files:

- include/clang/AST/DeclCXX.h
- lib/AST/DeclCXX.cpp