clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
clang::CXXMethodDecl Class Reference

Represents a static or instance method of a struct/union/class. More...

#include "clang/AST/DeclCXX.h"

Inheritance diagram for clang::CXXMethodDecl:
Inheritance graph
[legend]

Public Types

using method_iterator = const CXXMethodDecl *const *
 
using overridden_method_range = llvm::iterator_range< llvm::TinyPtrVector< const CXXMethodDecl * >::const_iterator >
 
- Public Types inherited from clang::FunctionDecl
enum  TemplatedKind {
  TK_NonTemplate , TK_FunctionTemplate , TK_MemberSpecialization , TK_FunctionTemplateSpecialization ,
  TK_DependentFunctionTemplateSpecialization , TK_DependentNonTemplate
}
 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 class  ModuleOwnershipKind : unsigned char {
  Unowned , Visible , VisibleWhenImported , ReachableWhenImported ,
  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, typename lookup_iterator::iterator_category, 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 >
 

Public Member Functions

bool isStatic () const
 
bool isInstance () const
 
bool isExplicitObjectMemberFunction () const
 [C++2b][dcl.fct]/p7 An explicit object member function is a non-static member function with an explicit object parameter.
 
bool isImplicitObjectMemberFunction () const
 [C++2b][dcl.fct]/p7 An implicit object member function is a non-static member function without an explicit object parameter.
 
bool isConst () const
 
bool isVolatile () const
 
bool isVirtual () const
 
CXXMethodDeclgetDevirtualizedMethod (const Expr *Base, bool IsAppleKext)
 If it's possible to devirtualize a call to this method, return the called function.
 
const CXXMethodDeclgetDevirtualizedMethod (const Expr *Base, bool IsAppleKext) const
 
bool isUsualDeallocationFunction (SmallVectorImpl< const FunctionDecl * > &PreventedBy) const
 Determine whether this is a usual deallocation function (C++ [basic.stc.dynamic.deallocation]p2), which is an overloaded delete or delete[] operator with a particular signature.
 
bool isCopyAssignmentOperator () const
 Determine whether this is a copy-assignment operator, regardless of whether it was declared implicitly or explicitly.
 
bool isMoveAssignmentOperator () const
 Determine whether this is a move assignment operator.
 
CXXMethodDeclgetCanonicalDecl () override
 Retrieves the "canonical" declaration of the given declaration.
 
const CXXMethodDeclgetCanonicalDecl () const
 
CXXMethodDeclgetMostRecentDecl ()
 
const CXXMethodDeclgetMostRecentDecl () const
 
void addOverriddenMethod (const CXXMethodDecl *MD)
 
method_iterator begin_overridden_methods () const
 
method_iterator end_overridden_methods () const
 
unsigned size_overridden_methods () const
 
overridden_method_range overridden_methods () const
 
const CXXRecordDeclgetParent () const
 Return the parent of this method declaration, which is the class in which this method is defined.
 
CXXRecordDeclgetParent ()
 Return the parent of this method declaration, which is the class in which this method is defined.
 
QualType getThisType () const
 Return the type of the this pointer.
 
QualType getFunctionObjectParameterReferenceType () const
 Return the type of the object pointed by this.
 
QualType getFunctionObjectParameterType () const
 
unsigned getNumExplicitParams () const
 
Qualifiers getMethodQualifiers () const
 
RefQualifierKind getRefQualifier () const
 Retrieve the ref-qualifier associated with this method.
 
bool hasInlineBody () const
 
bool isLambdaStaticInvoker () const
 Determine whether this is a lambda closure type's static member function that is used for the result of the lambda's conversion to function pointer (for a lambda with no captures).
 
CXXMethodDeclgetCorrespondingMethodInClass (const CXXRecordDecl *RD, bool MayBeBase=false)
 Find the method in RD that corresponds to this one.
 
const CXXMethodDeclgetCorrespondingMethodInClass (const CXXRecordDecl *RD, bool MayBeBase=false) const
 
CXXMethodDeclgetCorrespondingMethodDeclaredInClass (const CXXRecordDecl *RD, bool MayBeBase=false)
 Find if RD declares a function that overrides this function, and if so, return it.
 
const CXXMethodDeclgetCorrespondingMethodDeclaredInClass (const CXXRecordDecl *RD, bool MayBeBase=false) 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.
 
void setRangeEnd (SourceLocation E)
 
void setDeclarationNameLoc (DeclarationNameLoc L)
 
SourceLocation getEllipsisLoc () const
 Returns the location of the ellipsis of a variadic function.
 
SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
bool hasBody (const FunctionDecl *&Definition) const
 Returns true if the function has a body.
 
bool hasBody () const override
 Returns true if this Decl represents a declaration for a body of code, such as a function or method definition.
 
bool hasTrivialBody () const
 Returns whether the function has a trivial body that does not require any specific codegen.
 
bool isDefined (const FunctionDecl *&Definition, bool CheckForPendingFriendDefinition=false) const
 Returns true if the function has a definition that does not need to be instantiated.
 
bool isDefined () const
 
FunctionDeclgetDefinition ()
 Get the definition for this declaration.
 
const FunctionDeclgetDefinition () const
 
StmtgetBody (const FunctionDecl *&Definition) const
 Retrieve the body (definition) of the function.
 
StmtgetBody () 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.
 
bool isThisDeclarationADefinition () const
 Returns whether this specific declaration of the function is also a definition that does not contain uninstantiated body.
 
bool isThisDeclarationInstantiatedFromAFriendDefinition () const
 Determine whether this specific declaration of the function is a friend declaration that was instantiated from a function definition.
 
bool doesThisDeclarationHaveABody () const
 Returns whether this specific declaration of the function has a body.
 
void setBody (Stmt *B)
 
void setLazyBody (uint64_t Offset)
 
void setDefaultedOrDeletedInfo (DefaultedOrDeletedFunctionInfo *Info)
 
DefaultedOrDeletedFunctionInfogetDefalutedOrDeletedInfo () const
 
bool isVariadic () const
 Whether this function is variadic.
 
bool isVirtualAsWritten () const
 Whether this function is marked as virtual explicitly.
 
void setVirtualAsWritten (bool V)
 State that this function is marked as virtual explicitly.
 
bool isPureVirtual () const
 Whether this virtual function is pure, i.e.
 
void setIsPureVirtual (bool P=true)
 
bool isLateTemplateParsed () const
 Whether this templated function will be late parsed.
 
void setLateTemplateParsed (bool ILT=true)
 State that this templated function will be late parsed.
 
bool isTrivial () const
 Whether this function is "trivial" in some specialized C++ senses.
 
void setTrivial (bool IT)
 
bool isTrivialForCall () const
 
void setTrivialForCall (bool IT)
 
bool isDefaulted () const
 Whether this function is defaulted.
 
void setDefaulted (bool D=true)
 
bool isExplicitlyDefaulted () const
 Whether this function is explicitly defaulted.
 
void setExplicitlyDefaulted (bool ED=true)
 State that this function is explicitly defaulted.
 
SourceLocation getDefaultLoc () const
 
void setDefaultLoc (SourceLocation NewLoc)
 
bool isUserProvided () const
 True if this method is user-declared and was not deleted or defaulted on its first declaration.
 
bool isIneligibleOrNotSelected () const
 
void setIneligibleOrNotSelected (bool II)
 
bool hasImplicitReturnZero () const
 Whether falling off this function implicitly returns null/zero.
 
void setHasImplicitReturnZero (bool IRZ)
 State that falling off this function implicitly returns null/zero.
 
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.
 
bool hasWrittenPrototype () const
 Whether this function has a written prototype.
 
void setHasWrittenPrototype (bool P=true)
 State that this function has a written prototype.
 
bool hasInheritedPrototype () const
 Whether this function inherited its prototype from a previous declaration.
 
void setHasInheritedPrototype (bool P=true)
 State that this function inherited its prototype from a previous declaration.
 
bool isConstexpr () const
 Whether this is a (C++11) constexpr function or constexpr constructor.
 
void setConstexprKind (ConstexprSpecKind CSK)
 
ConstexprSpecKind getConstexprKind () const
 
bool isConstexprSpecified () const
 
bool isConsteval () const
 
void setBodyContainsImmediateEscalatingExpressions (bool Set)
 
bool BodyContainsImmediateEscalatingExpressions () const
 
bool isImmediateEscalating () const
 
bool isImmediateFunction () const
 
bool instantiationIsPending () const
 Whether the instantiation of this function is pending.
 
void setInstantiationIsPending (bool IC)
 State that the instantiation of this function is pending.
 
bool usesSEHTry () const
 Indicates the function uses __try.
 
void setUsesSEHTry (bool UST)
 
bool isDeleted () const
 Whether this function has been deleted.
 
bool isDeletedAsWritten () const
 
void setDeletedAsWritten (bool D=true, StringLiteral *Message=nullptr)
 
bool isMain () const
 Determines whether this function is "main", which is the entry point into an executable program.
 
bool isMSVCRTEntryPoint () const
 Determines whether this function is a MSVCRT user defined entry point.
 
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.
 
bool isReplaceableGlobalAllocationFunction (std::optional< unsigned > *AlignmentParam=nullptr, bool *IsNothrow=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.
 
bool isInlineBuiltinDeclaration () const
 Determine if this function provides an inline implementation of a builtin.
 
bool isDestroyingOperatorDelete () const
 Determine whether this is a destroying operator delete.
 
LanguageLinkage getLanguageLinkage () const
 Compute the language linkage.
 
bool isExternC () const
 Determines whether this function is a function with external, C linkage.
 
bool isInExternCContext () const
 Determines whether this function's context is, or is nested within, a C++ extern "C" linkage spec.
 
bool isInExternCXXContext () const
 Determines whether this function's context is, or is nested within, a C++ extern "C++" linkage spec.
 
bool isGlobal () const
 Determines whether this is a global function.
 
bool isNoReturn () const
 Determines whether this function is known to be 'noreturn', through an attribute on its declaration or its type.
 
bool hasSkippedBody () const
 True if the function was a definition but its body was skipped.
 
void setHasSkippedBody (bool Skipped=true)
 
bool willHaveBody () const
 True if this function will eventually have a body, once it's fully parsed.
 
void setWillHaveBody (bool V=true)
 
bool isMultiVersion () const
 True if this function is considered a multiversioned function.
 
void setIsMultiVersion (bool V=true)
 Sets the multiversion state for this declaration and all of its redeclarations.
 
void setFriendConstraintRefersToEnclosingTemplate (bool V=true)
 
bool FriendConstraintRefersToEnclosingTemplate () const
 
bool isMemberLikeConstrainedFriend () const
 Determine whether a function is a friend function that cannot be redeclared outside of its class, per C++ [temp.friend]p9.
 
MultiVersionKind getMultiVersionKind () const
 Gets the kind of multiversioning attribute this declaration has.
 
bool isCPUDispatchMultiVersion () const
 True if this function is a multiversioned dispatch function as a part of the cpu_specific/cpu_dispatch functionality.
 
bool isCPUSpecificMultiVersion () const
 True if this function is a multiversioned processor specific function as a part of the cpu_specific/cpu_dispatch functionality.
 
bool isTargetMultiVersion () const
 True if this function is a multiversioned dispatch function as a part of the target functionality.
 
bool isTargetMultiVersionDefault () const
 True if this function is the default version of a multiversioned dispatch function as a part of the target functionality.
 
bool isTargetClonesMultiVersion () const
 True if this function is a multiversioned dispatch function as a part of the target-clones functionality.
 
bool isTargetVersionMultiVersion () const
 True if this function is a multiversioned dispatch function as a part of the target-version functionality.
 
void getAssociatedConstraints (SmallVectorImpl< const Expr * > &AC) const
 Get the associated-constraints of this function declaration.
 
StringLiteralgetDeletedMessage () const
 Get the message that indicates why this function was deleted.
 
void setPreviousDeclaration (FunctionDecl *PrevDecl)
 
FunctionDeclgetCanonicalDecl () override
 Retrieves the "canonical" declaration of the given declaration.
 
const FunctionDeclgetCanonicalDecl () const
 
unsigned getBuiltinID (bool ConsiderWrapperFunctions=false) const
 Returns a value indicating whether this function corresponds to a builtin function.
 
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.
 
const ParmVarDeclgetParamDecl (unsigned i) const
 
ParmVarDeclgetParamDecl (unsigned i)
 
void setParams (ArrayRef< ParmVarDecl * > NewParamInfo)
 
unsigned getMinRequiredArguments () const
 Returns the minimum number of arguments needed to call this function.
 
unsigned getMinRequiredExplicitArguments () const
 Returns the minimum number of non-object arguments needed to call this function.
 
bool hasCXXExplicitFunctionObjectParameter () const
 
unsigned getNumNonObjectParams () const
 
const ParmVarDeclgetNonObjectParameter (unsigned I) const
 
ParmVarDeclgetNonObjectParameter (unsigned I)
 
bool hasOneParamOrDefaultArgs () const
 Determine whether this function has a single parameter, or multiple parameters where all but the first have default arguments.
 
FunctionTypeLoc getFunctionTypeLoc () const
 Find the source location information for how the type of this function was written.
 
QualType getReturnType () const
 
SourceRange getReturnTypeSourceRange () const
 Attempt to compute an informative source range covering the function return type.
 
SourceRange getParametersSourceRange () const
 Attempt to compute an informative source range covering the function parameters, including the ellipsis of a variadic function.
 
QualType getDeclaredReturnType () const
 Get the declared return type, which may differ from the actual return type if the return type is deduced.
 
ExceptionSpecificationType getExceptionSpecType () const
 Gets the ExceptionSpecificationType as declared.
 
SourceRange getExceptionSpecSourceRange () const
 Attempt to compute an informative source range covering the function exception specification, if any.
 
QualType getCallResultType () const
 Determine the type of an expression that calls this function.
 
StorageClass getStorageClass () const
 Returns the storage class as written in the source.
 
void setStorageClass (StorageClass SClass)
 Sets the storage class as written in the source.
 
bool isInlineSpecified () const
 Determine whether the "inline" keyword was specified for this function.
 
void setInlineSpecified (bool I)
 Set whether the "inline" keyword was specified for this function.
 
bool UsesFPIntrin () const
 Determine whether the function was declared in source context that requires constrained FP intrinsics.
 
void setUsesFPIntrin (bool I)
 Set whether the function was declared in source context that requires constrained FP intrinsics.
 
void setImplicitlyInline (bool I=true)
 Flag that this function is implicitly inline.
 
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.
 
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.
 
bool isMSExternInline () const
 The combination of the extern and inline keywords under MSVC forces the function to be required.
 
bool doesDeclarationForceExternallyVisibleDefinition () const
 For a function declaration in C or C++, determine whether this declaration causes the definition to be externally visible.
 
bool isStatic () const
 
bool isOverloadedOperator () const
 Whether this function declaration represents an C++ overloaded operator, e.g., "operator+".
 
OverloadedOperatorKind getOverloadedOperator () const
 getOverloadedOperator - Which C++ overloaded operator this function represents, if any.
 
const IdentifierInfogetLiteralIdentifier () const
 getLiteralIdentifier - The literal suffix identifier this function represents, if any.
 
FunctionDeclgetInstantiatedFromMemberFunction () const
 If this function is an instantiation of a member function of a class template specialization, retrieves the function from which it was instantiated.
 
TemplatedKind getTemplatedKind () const
 What kind of templated function this is.
 
MemberSpecializationInfogetMemberSpecializationInfo () const
 If this function is an instantiation of a member function of a class template specialization, retrieves the member specialization information.
 
void setInstantiationOfMemberFunction (FunctionDecl *FD, TemplateSpecializationKind TSK)
 Specify that this record is an instantiation of the member function FD.
 
void setInstantiatedFromDecl (FunctionDecl *FD)
 Specify that this function declaration was instantiated from a FunctionDecl FD.
 
FunctionDeclgetInstantiatedFromDecl () const
 
FunctionTemplateDeclgetDescribedFunctionTemplate () const
 Retrieves the function template that is described by this function declaration.
 
void setDescribedFunctionTemplate (FunctionTemplateDecl *Template)
 
bool isFunctionTemplateSpecialization () const
 Determine whether this function is a function template specialization.
 
FunctionTemplateSpecializationInfogetTemplateSpecializationInfo () const
 If this function is actually a function template specialization, retrieve information about this function template specialization.
 
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.
 
bool isTemplateInstantiation () const
 Determines if the given function was instantiated from a function template.
 
FunctionDeclgetTemplateInstantiationPattern (bool ForDefinition=true) 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).
 
FunctionTemplateDeclgetPrimaryTemplate () const
 Retrieve the primary template that this function template specialization either specializes or was instantiated from.
 
const TemplateArgumentListgetTemplateSpecializationArgs () const
 Retrieve the template arguments used to produce this function template specialization from the primary template.
 
const ASTTemplateArgumentListInfogetTemplateSpecializationArgsAsWritten () const
 Retrieve the template argument list as written in the sources, if any.
 
void setFunctionTemplateSpecialization (FunctionTemplateDecl *Template, TemplateArgumentList *TemplateArgs, void *InsertPos, TemplateSpecializationKind TSK=TSK_ImplicitInstantiation, TemplateArgumentListInfo *TemplateArgsAsWritten=nullptr, SourceLocation PointOfInstantiation=SourceLocation())
 Specify that this function declaration is actually a function template specialization.
 
void setDependentTemplateSpecialization (ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo *TemplateArgs)
 Specifies that this function declaration is actually a dependent function template specialization.
 
DependentFunctionTemplateSpecializationInfogetDependentSpecializationInfo () const
 
TemplateSpecializationKind getTemplateSpecializationKind () const
 Determine what kind of template instantiation this function represents.
 
TemplateSpecializationKind getTemplateSpecializationKindForInstantiation () const
 Determine the kind of template specialization this function represents for the purpose of template instantiation.
 
void setTemplateSpecializationKind (TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation())
 Determine what kind of template instantiation this function represents.
 
SourceLocation getPointOfInstantiation () const
 Retrieve the (first) point of instantiation of a function template specialization or a member of a class template specialization.
 
bool isOutOfLine () const override
 Determine whether this is or was instantiated from an out-of-line definition of a member function.
 
unsigned getMemoryFunctionKind () const
 Identify a memory copying or setting function.
 
unsigned getODRHash ()
 Returns ODRHash of the function.
 
unsigned getODRHash () const
 Returns cached ODRHash of the function.
 
FunctionEffectsRef getFunctionEffects () const
 
- Public Member Functions inherited from clang::DeclaratorDecl
TypeSourceInfogetTypeSourceInfo () const
 
void setTypeSourceInfo (TypeSourceInfo *TI)
 
SourceLocation getInnerLocStart () const
 Return start of source range ignoring outer template declarations.
 
void setInnerLocStart (SourceLocation L)
 
SourceLocation getOuterLocStart () const
 Return start of source range taking into account any outer template declarations.
 
SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
SourceLocation getBeginLoc () const LLVM_READONLY
 
NestedNameSpecifiergetQualifier () const
 Retrieve the nested-name-specifier that qualifies the name of this declaration, if it was present in the source.
 
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.
 
void setQualifierInfo (NestedNameSpecifierLoc QualifierLoc)
 
ExprgetTrailingRequiresClause ()
 Get the constraint-expression introduced by the trailing requires-clause in the function/member declaration, or null if no requires-clause was provided.
 
const ExprgetTrailingRequiresClause () const
 
void setTrailingRequiresClause (Expr *TrailingRequiresClause)
 
unsigned getNumTemplateParameterLists () const
 
TemplateParameterListgetTemplateParameterList (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