class UnresolvedLookupExpr

Declaration

class UnresolvedLookupExpr : public OverloadExpr,
                             private TrailingObjects { /* full declaration omitted */ };

Description

A reference to a name which we were able to look up during parsing but could not resolve to a specific declaration. This arises in several ways: * we might be waiting for argument-dependent lookup; * the name might resolve to an overloaded function; and eventually: * the lookup might have included a function template. These never include UnresolvedUsingValueDecls, which are always class members and therefore appear only in UnresolvedMemberLookupExprs.

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

Inherits from: OverloadExpr, TrailingObjects

Member Variables

private clang::CXXRecordDecl* NamingClass
The naming class (C++ [class.access.base]p5) of the lookup, if any. This can generally be recalculated from the context chain, but that can be fairly expensive for unqualified lookups.

Inherited from Stmt:

protected

Method Overview

  • public static clang::UnresolvedLookupExpr * Create(const clang::ASTContext & Context, clang::CXXRecordDecl * NamingClass, clang::NestedNameSpecifierLoc QualifierLoc, const clang::DeclarationNameInfo & NameInfo, bool RequiresADL, bool Overloaded, clang::UnresolvedSetIterator Begin, clang::UnresolvedSetIterator End)
  • public static clang::UnresolvedLookupExpr * Create(const clang::ASTContext & Context, clang::CXXRecordDecl * NamingClass, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & NameInfo, bool RequiresADL, const clang::TemplateArgumentListInfo * Args, clang::UnresolvedSetIterator Begin, clang::UnresolvedSetIterator End)
  • public static clang::UnresolvedLookupExpr * CreateEmpty(const clang::ASTContext & Context, unsigned int NumResults, bool HasTemplateKWAndArgsInfo, unsigned int NumTemplateArgs)
  • private UnresolvedLookupExpr(const clang::ASTContext & Context, clang::CXXRecordDecl * NamingClass, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & NameInfo, bool RequiresADL, bool Overloaded, const clang::TemplateArgumentListInfo * TemplateArgs, clang::UnresolvedSetIterator Begin, clang::UnresolvedSetIterator End)
  • private UnresolvedLookupExpr(clang::Stmt::EmptyShell Empty, unsigned int NumResults, bool HasTemplateKWAndArgsInfo)
  • public clang::Stmt::child_range children()
  • public clang::Stmt::const_child_range children() const
  • public static bool classof(const clang::Stmt * T)
  • public clang::SourceLocation getBeginLoc() const
  • public clang::SourceLocation getEndLoc() const
  • public clang::CXXRecordDecl * getNamingClass()
  • public const clang::CXXRecordDecl * getNamingClass() const
  • public bool isOverloaded() const
  • private unsigned int numTrailingObjects(OverloadToken<clang::DeclAccessPair>) const
  • private unsigned int numTrailingObjects(OverloadToken<clang::ASTTemplateKWAndArgsInfo>) const
  • public bool requiresADL() const

Inherited from OverloadExpr:

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

static clang::UnresolvedLookupExpr* Create(
    const clang::ASTContext& Context,
    clang::CXXRecordDecl* NamingClass,
    clang::NestedNameSpecifierLoc QualifierLoc,
    const clang::DeclarationNameInfo& NameInfo,
    bool RequiresADL,
    bool Overloaded,
    clang::UnresolvedSetIterator Begin,
    clang::UnresolvedSetIterator End)

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

Parameters

const clang::ASTContext& Context
clang::CXXRecordDecl* NamingClass
clang::NestedNameSpecifierLoc QualifierLoc
const clang::DeclarationNameInfo& NameInfo
bool RequiresADL
bool Overloaded
clang::UnresolvedSetIterator Begin
clang::UnresolvedSetIterator End

static clang::UnresolvedLookupExpr* Create(
    const clang::ASTContext& Context,
    clang::CXXRecordDecl* NamingClass,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    const clang::DeclarationNameInfo& NameInfo,
    bool RequiresADL,
    const clang::TemplateArgumentListInfo* Args,
    clang::UnresolvedSetIterator Begin,
    clang::UnresolvedSetIterator End)

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

Parameters

const clang::ASTContext& Context
clang::CXXRecordDecl* NamingClass
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
const clang::DeclarationNameInfo& NameInfo
bool RequiresADL
const clang::TemplateArgumentListInfo* Args
clang::UnresolvedSetIterator Begin
clang::UnresolvedSetIterator End

static clang::UnresolvedLookupExpr* CreateEmpty(
    const clang::ASTContext& Context,
    unsigned int NumResults,
    bool HasTemplateKWAndArgsInfo,
    unsigned int NumTemplateArgs)

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

Parameters

const clang::ASTContext& Context
unsigned int NumResults
bool HasTemplateKWAndArgsInfo
unsigned int NumTemplateArgs

UnresolvedLookupExpr(
    const clang::ASTContext& Context,
    clang::CXXRecordDecl* NamingClass,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    const clang::DeclarationNameInfo& NameInfo,
    bool RequiresADL,
    bool Overloaded,
    const clang::TemplateArgumentListInfo*
        TemplateArgs,
    clang::UnresolvedSetIterator Begin,
    clang::UnresolvedSetIterator End)

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

Parameters

const clang::ASTContext& Context
clang::CXXRecordDecl* NamingClass
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
const clang::DeclarationNameInfo& NameInfo
bool RequiresADL
bool Overloaded
const clang::TemplateArgumentListInfo* TemplateArgs
clang::UnresolvedSetIterator Begin
clang::UnresolvedSetIterator End

UnresolvedLookupExpr(
    clang::Stmt::EmptyShell Empty,
    unsigned int NumResults,
    bool HasTemplateKWAndArgsInfo)

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

Parameters

clang::Stmt::EmptyShell Empty
unsigned int NumResults
bool HasTemplateKWAndArgsInfo

clang::Stmt::child_range children()

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

clang::Stmt::const_child_range children() const

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

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

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

Parameters

const clang::Stmt* T

clang::SourceLocation getBeginLoc() const

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

clang::SourceLocation getEndLoc() const

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

clang::CXXRecordDecl* getNamingClass()

Description

Gets the 'naming class' (in the sense of C++0x [class.access.base]p5) of the lookup. This is the scope that was looked in to find these results.

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

const clang::CXXRecordDecl* getNamingClass() const

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

bool isOverloaded() const

Description

True if this lookup is overloaded.

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

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

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

Parameters

OverloadToken<clang::DeclAccessPair>

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

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

Parameters

OverloadToken<clang::ASTTemplateKWAndArgsInfo>

bool requiresADL() const

Description

True if this declaration should be extended by argument-dependent lookup.

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