clang 20.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:
Inheritance graph
[legend]

Public Member Functions

ExplicitSpecifier getExplicitSpecifier ()
 
const ExplicitSpecifier getExplicitSpecifier () const
 
bool isExplicit () const
 Return true if the declaration is already resolved to be explicit.
 
TemplateDeclgetDeducedTemplate () const
 Get the template for which this guide performs deduction.
 
CXXConstructorDeclgetCorrespondingConstructor () const
 Get the constructor from which this deduction guide was generated, if this is an implicit deduction guide.
 
void setDeductionCandidateKind (DeductionCandidate K)
 
DeductionCandidate getDeductionCandidateKind () 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