class TemplateSpecializationTypeLoc

Declaration

class TemplateSpecializationTypeLoc : public ConcreteTypeLoc { /* full declaration omitted */ };

Description

A metaprogramming base class for TypeLoc classes which correspond to a particular Type subclass. It is accepted for a single TypeLoc class to correspond to multiple Type classes. TypeLocs with non-constant amounts of local data should override getExtraLocalDataSize(); getExtraLocalData() will then point to this extra memory. TypeLocs with an inner type should define QualType getInnerType() const and getInnerTypeLoc() will then point to this inner type's location data. A word about hierarchies: this template is not designed to be derived from multiple times in a hierarchy. It is also not designed to be used for classes where subtypes might provide different amounts of source information. It should be subclassed only at the deepest portion of the hierarchy where all children have identical source information; if that's an abstract type, then further descendents should inherit from InheritingConcreteTypeLoc instead.

Declared at: clang/include/clang/AST/TypeLoc.h:1606

Inherits from: ConcreteTypeLoc

Method Overview

Methods

void copy(
    clang::TemplateSpecializationTypeLoc Loc)

Description

- Copy the location information from the given info.

Declared at: clang/include/clang/AST/TypeLoc.h:1661

Parameters

clang::TemplateSpecializationTypeLoc Loc

clang::TemplateArgumentLocInfo* getArgInfos()
    const

Declared at: clang/include/clang/AST/TypeLoc.h:1702

clang::TemplateArgumentLoc getArgLoc(
    unsigned int i) const

Declared at: clang/include/clang/AST/TypeLoc.h:1648

Parameters

unsigned int i

clang::TemplateArgumentLocInfo getArgLocInfo(
    unsigned int i) const

Declared at: clang/include/clang/AST/TypeLoc.h:1644

Parameters

unsigned int i

unsigned int getExtraLocalDataAlignment() const

Declared at: clang/include/clang/AST/TypeLoc.h:1697

unsigned int getExtraLocalDataSize() const

Declared at: clang/include/clang/AST/TypeLoc.h:1693

clang::SourceLocation getLAngleLoc() const

Declared at: clang/include/clang/AST/TypeLoc.h:1620

clang::SourceRange getLocalSourceRange() const

Declared at: clang/include/clang/AST/TypeLoc.h:1672

unsigned int getNumArgs() const

Declared at: clang/include/clang/AST/TypeLoc.h:1636

clang::SourceLocation getRAngleLoc() const

Declared at: clang/include/clang/AST/TypeLoc.h:1628

clang::SourceLocation getTemplateKeywordLoc()
    const

Declared at: clang/include/clang/AST/TypeLoc.h:1612

clang::SourceLocation getTemplateNameLoc() const

Declared at: clang/include/clang/AST/TypeLoc.h:1652

static void initializeArgLocs(
    clang::ASTContext& Context,
    unsigned int NumArgs,
    const clang::TemplateArgument* Args,
    clang::TemplateArgumentLocInfo* ArgInfos,
    clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1688

Parameters

clang::ASTContext& Context
unsigned int NumArgs
const clang::TemplateArgument* Args
clang::TemplateArgumentLocInfo* ArgInfos
clang::SourceLocation Loc

void initializeLocal(clang::ASTContext& Context,
                     clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1679

Parameters

clang::ASTContext& Context
clang::SourceLocation Loc

void setArgLocInfo(
    unsigned int i,
    clang::TemplateArgumentLocInfo AI)

Declared at: clang/include/clang/AST/TypeLoc.h:1640

Parameters

unsigned int i
clang::TemplateArgumentLocInfo AI

void setLAngleLoc(clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1624

Parameters

clang::SourceLocation Loc

void setRAngleLoc(clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1632

Parameters

clang::SourceLocation Loc

void setTemplateKeywordLoc(
    clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1616

Parameters

clang::SourceLocation Loc

void setTemplateNameLoc(clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/TypeLoc.h:1656

Parameters

clang::SourceLocation Loc