class UnresolvedMemberExpr
Declaration
class UnresolvedMemberExpr : public OverloadExpr,
private TrailingObjects { /* full declaration omitted */ };
Description
Represents a C++ member access expression for which lookup produced a set of overloaded functions. The member access may be explicit or implicit: In the final AST, an explicit access always becomes a MemberExpr. An implicit access may become either a MemberExpr or a DeclRefExpr, depending on whether the member is static.
Declared at: clang/include/clang/AST/ExprCXX.h:3827
Inherits from: OverloadExpr, TrailingObjects
Member Variables
- private clang::Stmt* Base
- This can be null if this is an 'unbased' member expression.
- private clang::QualType BaseType
- The type of the base expression; never null.
- private clang::SourceLocation OperatorLoc
- The location of the '->' or '.' operator.
Inherited from Stmt:
Method Overview
- public static clang::UnresolvedMemberExpr * Create(const clang::ASTContext & Context, bool HasUnresolvedUsing, clang::Expr * Base, clang::QualType BaseType, bool IsArrow, clang::SourceLocation OperatorLoc, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & MemberNameInfo, const clang::TemplateArgumentListInfo * TemplateArgs, clang::UnresolvedSetIterator Begin, clang::UnresolvedSetIterator End)
- public static clang::UnresolvedMemberExpr * CreateEmpty(const clang::ASTContext & Context, unsigned int NumResults, bool HasTemplateKWAndArgsInfo, unsigned int NumTemplateArgs)
- private UnresolvedMemberExpr(clang::Stmt::EmptyShell Empty, unsigned int NumResults, bool HasTemplateKWAndArgsInfo)
- private UnresolvedMemberExpr(const clang::ASTContext & Context, bool HasUnresolvedUsing, clang::Expr * Base, clang::QualType BaseType, bool IsArrow, clang::SourceLocation OperatorLoc, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & MemberNameInfo, const clang::TemplateArgumentListInfo * TemplateArgs, clang::UnresolvedSetIterator Begin, clang::UnresolvedSetIterator End)
- public clang::Stmt::const_child_range children() const
- public clang::Stmt::child_range children()
- public static bool classof(const clang::Stmt * T)
- public clang::Expr * getBase()
- public const clang::Expr * getBase() const
- public clang::QualType getBaseType() const
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getEndLoc() const
- public clang::SourceLocation getExprLoc() const
- public clang::SourceLocation getMemberLoc() const
- public clang::DeclarationName getMemberName() const
- public const clang::DeclarationNameInfo & getMemberNameInfo() const
- public const clang::CXXRecordDecl * getNamingClass() const
- public clang::CXXRecordDecl * getNamingClass()
- public clang::SourceLocation getOperatorLoc() const
- public bool hasUnresolvedUsing() const
- public bool isArrow() const
- public bool isImplicitAccess() const
- private unsigned int numTrailingObjects(OverloadToken<clang::ASTTemplateKWAndArgsInfo>) const
- private unsigned int numTrailingObjects(OverloadToken<clang::DeclAccessPair>) const
Inherited from OverloadExpr:
- public classof
- public copyTemplateArgumentsInto
- public decls
- public decls_begin
- public decls_end
- public find
- public getLAngleLoc
- public getName
- public getNameInfo
- public getNameLoc
- public getNamingClass
- public getNamingClass
- public getNumDecls
- public getNumTemplateArgs
- public getQualifier
- public getQualifierLoc
- public getRAngleLoc
- public getTemplateArgs
- public getTemplateKeywordLoc
- protected getTrailingASTTemplateKWAndArgsInfo
- protected getTrailingASTTemplateKWAndArgsInfo
- protected getTrailingResults
- protected getTrailingResults
- protected getTrailingTemplateArgumentLoc
- protected getTrailingTemplateArgumentLoc
- public hasExplicitTemplateArgs
- protected hasTemplateKWAndArgsInfo
- public hasTemplateKeyword
- public template_arguments
Inherited from Expr:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶static clang::UnresolvedMemberExpr* Create(
const clang::ASTContext& Context,
bool HasUnresolvedUsing,
clang::Expr* Base,
clang::QualType BaseType,
bool IsArrow,
clang::SourceLocation OperatorLoc,
clang::NestedNameSpecifierLoc QualifierLoc,
clang::SourceLocation TemplateKWLoc,
const clang::DeclarationNameInfo&
MemberNameInfo,
const clang::TemplateArgumentListInfo*
TemplateArgs,
clang::UnresolvedSetIterator Begin,
clang::UnresolvedSetIterator End)
static clang::UnresolvedMemberExpr* Create(
const clang::ASTContext& Context,
bool HasUnresolvedUsing,
clang::Expr* Base,
clang::QualType BaseType,
bool IsArrow,
clang::SourceLocation OperatorLoc,
clang::NestedNameSpecifierLoc QualifierLoc,
clang::SourceLocation TemplateKWLoc,
const clang::DeclarationNameInfo&
MemberNameInfo,
const clang::TemplateArgumentListInfo*
TemplateArgs,
clang::UnresolvedSetIterator Begin,
clang::UnresolvedSetIterator End)
Declared at: clang/include/clang/AST/ExprCXX.h:3884
Parameters
- const clang::ASTContext& Context
- bool HasUnresolvedUsing
- clang::Expr* Base
- clang::QualType BaseType
- bool IsArrow
- clang::SourceLocation OperatorLoc
- clang::NestedNameSpecifierLoc QualifierLoc
- clang::SourceLocation TemplateKWLoc
- const clang::DeclarationNameInfo& MemberNameInfo
- const clang::TemplateArgumentListInfo* TemplateArgs
- clang::UnresolvedSetIterator Begin
- clang::UnresolvedSetIterator End
¶static clang::UnresolvedMemberExpr* CreateEmpty(
const clang::ASTContext& Context,
unsigned int NumResults,
bool HasTemplateKWAndArgsInfo,
unsigned int NumTemplateArgs)
static clang::UnresolvedMemberExpr* CreateEmpty(
const clang::ASTContext& Context,
unsigned int NumResults,
bool HasTemplateKWAndArgsInfo,
unsigned int NumTemplateArgs)
Declared at: clang/include/clang/AST/ExprCXX.h:3891
Parameters
- const clang::ASTContext& Context
- unsigned int NumResults
- bool HasTemplateKWAndArgsInfo
- unsigned int NumTemplateArgs
¶UnresolvedMemberExpr(
clang::Stmt::EmptyShell Empty,
unsigned int NumResults,
bool HasTemplateKWAndArgsInfo)
UnresolvedMemberExpr(
clang::Stmt::EmptyShell Empty,
unsigned int NumResults,
bool HasTemplateKWAndArgsInfo)
Declared at: clang/include/clang/AST/ExprCXX.h:3871
Parameters
- clang::Stmt::EmptyShell Empty
- unsigned int NumResults
- bool HasTemplateKWAndArgsInfo
¶UnresolvedMemberExpr(
const clang::ASTContext& Context,
bool HasUnresolvedUsing,
clang::Expr* Base,
clang::QualType BaseType,
bool IsArrow,
clang::SourceLocation OperatorLoc,
clang::NestedNameSpecifierLoc QualifierLoc,
clang::SourceLocation TemplateKWLoc,
const clang::DeclarationNameInfo&
MemberNameInfo,
const clang::TemplateArgumentListInfo*
TemplateArgs,
clang::UnresolvedSetIterator Begin,
clang::UnresolvedSetIterator End)
UnresolvedMemberExpr(
const clang::ASTContext& Context,
bool HasUnresolvedUsing,
clang::Expr* Base,
clang::QualType BaseType,
bool IsArrow,
clang::SourceLocation OperatorLoc,
clang::NestedNameSpecifierLoc QualifierLoc,
clang::SourceLocation TemplateKWLoc,
const clang::DeclarationNameInfo&
MemberNameInfo,
const clang::TemplateArgumentListInfo*
TemplateArgs,
clang::UnresolvedSetIterator Begin,
clang::UnresolvedSetIterator End)
Declared at: clang/include/clang/AST/ExprCXX.h:3862
Parameters
- const clang::ASTContext& Context
- bool HasUnresolvedUsing
- clang::Expr* Base
- clang::QualType BaseType
- bool IsArrow
- clang::SourceLocation OperatorLoc
- clang::NestedNameSpecifierLoc QualifierLoc
- clang::SourceLocation TemplateKWLoc
- const clang::DeclarationNameInfo& MemberNameInfo
- const clang::TemplateArgumentListInfo* TemplateArgs
- clang::UnresolvedSetIterator Begin
- clang::UnresolvedSetIterator End
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/ExprCXX.h:3974
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/ExprCXX.h:3968
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/ExprCXX.h:3963
Parameters
- const clang::Stmt* T
¶clang::Expr* getBase()
clang::Expr* getBase()
Description
Retrieve the base object of this member expressions, e.g., the \c x in \c x.m.
Declared at: clang/include/clang/AST/ExprCXX.h:3904
¶const clang::Expr* getBase() const
const clang::Expr* getBase() const
Declared at: clang/include/clang/AST/ExprCXX.h:3908
¶clang::QualType getBaseType() const
clang::QualType getBaseType() const
Declared at: clang/include/clang/AST/ExprCXX.h:3913
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:3949
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:3957
¶clang::SourceLocation getExprLoc() const
clang::SourceLocation getExprLoc() const
Description
Return the preferred location (the member name) for the arrow when diagnosing a problem with this expression.
Declared at: clang/include/clang/AST/ExprCXX.h:3947
¶clang::SourceLocation getMemberLoc() const
clang::SourceLocation getMemberLoc() const
Description
Retrieve the location of the name of the member that this expression refers to.
Declared at: clang/include/clang/AST/ExprCXX.h:3943
¶clang::DeclarationName getMemberName() const
clang::DeclarationName getMemberName() const
Description
Retrieve the name of the member that this expression refers to.
Declared at: clang/include/clang/AST/ExprCXX.h:3939
¶const clang::DeclarationNameInfo&
getMemberNameInfo() const
const clang::DeclarationNameInfo&
getMemberNameInfo() const
Description
Retrieve the full name info for the member that this expression refers to.
Declared at: clang/include/clang/AST/ExprCXX.h:3936
¶const clang::CXXRecordDecl* getNamingClass() const
const clang::CXXRecordDecl* getNamingClass() const
Declared at: clang/include/clang/AST/ExprCXX.h:3930
¶clang::CXXRecordDecl* getNamingClass()
clang::CXXRecordDecl* getNamingClass()
Description
Retrieve the naming class of this lookup.
Declared at: clang/include/clang/AST/ExprCXX.h:3929
¶clang::SourceLocation getOperatorLoc() const
clang::SourceLocation getOperatorLoc() const
Description
Retrieve the location of the '->' or '.' operator.
Declared at: clang/include/clang/AST/ExprCXX.h:3926
¶bool hasUnresolvedUsing() const
bool hasUnresolvedUsing() const
Description
Determine whether the lookup results contain an unresolved using declaration.
Declared at: clang/include/clang/AST/ExprCXX.h:3917
¶bool isArrow() const
bool isArrow() const
Description
Determine whether this member expression used the '->' operator; otherwise, it used the '.' operator.
Declared at: clang/include/clang/AST/ExprCXX.h:3923
¶bool isImplicitAccess() const
bool isImplicitAccess() const
Description
True if this is an implicit access, i.e., one in which the member being accessed was not written in the source. The source location of the operator is invalid in this case.
Declared at: clang/include/clang/AST/ExprCXX.h:3900
¶unsigned int numTrailingObjects(
OverloadToken<
clang::ASTTemplateKWAndArgsInfo>) const
unsigned int numTrailingObjects(
OverloadToken<
clang::ASTTemplateKWAndArgsInfo>) const
Declared at: clang/include/clang/AST/ExprCXX.h:3878
Parameters
- OverloadToken<clang::ASTTemplateKWAndArgsInfo>
¶unsigned int numTrailingObjects(
OverloadToken<clang::DeclAccessPair>) const
unsigned int numTrailingObjects(
OverloadToken<clang::DeclAccessPair>) const
Declared at: clang/include/clang/AST/ExprCXX.h:3874
Parameters
- OverloadToken<clang::DeclAccessPair>