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:

protected

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:

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

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)

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)

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)

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)

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

Declared at: clang/include/clang/AST/ExprCXX.h:3974

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/ExprCXX.h:3968

static bool classof(const clang::Stmt* T)

Declared at: clang/include/clang/AST/ExprCXX.h:3963

Parameters

const clang::Stmt* T

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

Declared at: clang/include/clang/AST/ExprCXX.h:3908

clang::QualType getBaseType() const

Declared at: clang/include/clang/AST/ExprCXX.h:3913

clang::SourceLocation getBeginLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:3949

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:3957

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

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

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

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

Declared at: clang/include/clang/AST/ExprCXX.h:3930

clang::CXXRecordDecl* getNamingClass()

Description

Retrieve the naming class of this lookup.

Declared at: clang/include/clang/AST/ExprCXX.h:3929

clang::SourceLocation getOperatorLoc() const

Description

Retrieve the location of the '->' or '.' operator.

Declared at: clang/include/clang/AST/ExprCXX.h:3926

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

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

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

Declared at: clang/include/clang/AST/ExprCXX.h:3878

Parameters

OverloadToken<clang::ASTTemplateKWAndArgsInfo>

unsigned int numTrailingObjects(
    OverloadToken<clang::DeclAccessPair>) const

Declared at: clang/include/clang/AST/ExprCXX.h:3874

Parameters

OverloadToken<clang::DeclAccessPair>