A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/TemplateName_8h_source.html below:

clang: include/clang/AST/TemplateName.h Source File

13#ifndef LLVM_CLANG_AST_TEMPLATENAME_H 14#define LLVM_CLANG_AST_TEMPLATENAME_H 19#include "llvm/ADT/FoldingSet.h" 20#include "llvm/ADT/PointerIntPair.h" 21#include "llvm/ADT/PointerUnion.h" 22#include "llvm/Support/PointerLikeTypeTraits.h" 30class

DependentTemplateName;

33class

NestedNameSpecifier;

35class

OverloadedTemplateStorage;

36class

AssumedTemplateStorage;

37class

DeducedTemplateStorage;

39class

QualifiedTemplateName;

40class

SubstTemplateTemplateParmPackStorage;

41class

SubstTemplateTemplateParmStorage;

42class

TemplateArgument;

44class

TemplateTemplateParmDecl;

60

LLVM_PREFERRED_TYPE(

Kind

)

123 return reinterpret_cast<NamedDecl

**

>

(

this

+ 1);

126 return reinterpret_cast<

NamedDecl *

const

*

>

(

this

+ 1);

130 unsigned size

()

const

{

return

Bits.Data; }

149 public

llvm::FoldingSetNode {

151

llvm::PointerIntPair<Decl *, 1, bool> AssociatedDeclAndFinal;

155 Decl

*AssociatedDecl,

unsigned

Index,

160 Decl

*getAssociatedDecl()

const

;

167 bool

getFinal()

const

;

176 void

Profile(llvm::FoldingSetNodeID &

ID

,

ASTContext

&Context);

178 static void

Profile(llvm::FoldingSetNodeID &

ID

,

ASTContext

&Context,

180 unsigned

Index,

bool

Final);

189 operator bool

()

const

{

return

!Args.empty(); }

284 bool

isNull()

const

;

296 TemplateDecl

*getAsTemplateDecl(

bool

IgnoreDeduced =

false

)

const

;

301

std::pair<TemplateDecl *, DefaultArguments>

302

getTemplateDeclAndDefaultArgs()

const

;

330

getAsSubstTemplateTemplateParmPack()

const

;

347

std::optional<TemplateName> desugar(

bool

IgnoreDeduced)

const

;

351

TemplateNameDependence getDependence()

const

;

354 bool

isDependent()

const

;

358 bool

isInstantiationDependent()

const

;

362 bool

containsUnexpandedParameterPack()

const

;

374

Qualified Qual = Qualified::AsWritten)

const

;

384 ID

.AddPointer(Storage.getOpaqueValue());

402const

StreamingDiagnostic &

operator<<

(

const

StreamingDiagnostic &DB,

412 Decl

*AssociatedDecl;

415 Decl

*AssociatedDecl,

unsigned

Index,

416

std::optional<unsigned> PackIndex)

418

PackIndex ? *PackIndex + 1 : 0),

419

Replacement(Replacement), AssociatedDecl(AssociatedDecl) {

420

assert(AssociatedDecl !=

nullptr

);

435 return

Bits.Data - 1;

441 void

Profile(llvm::FoldingSetNodeID &

ID

);

443 static void

Profile(llvm::FoldingSetNodeID &

ID

,

TemplateName

Replacement,

444 Decl

*AssociatedDecl,

unsigned

Index,

445

std::optional<unsigned> PackIndex);

449 public

llvm::FoldingSetNode {

466 void

Profile(llvm::FoldingSetNodeID &

ID

,

const ASTContext

&Context)

const

;

468 static void

Profile(llvm::FoldingSetNodeID &

ID

,

const ASTContext

&Context,

501

llvm::PointerIntPair<NestedNameSpecifier *, 1> Qualifier;

512

: Qualifier(NNS, TemplateKeyword ? 1 : 0), UnderlyingTemplate(Template) {

513

assert(UnderlyingTemplate.

getKind

() == TemplateName::Template ||

514

UnderlyingTemplate.

getKind

() == TemplateName::UsingTemplate);

529

Profile(

ID

, getQualifier(), hasTemplateKeyword(), UnderlyingTemplate);

535 ID

.AddBoolean(TemplateKeyword);

557

llvm::PointerIntPair<NestedNameSpecifier *, 1, bool> Qualifier;

583

CanonicalTemplateName(this) {}

585

DependentTemplateName(NestedNameSpecifier *Qualifier,

589

CanonicalTemplateName(Canon) {}

591

DependentTemplateName(NestedNameSpecifier *Qualifier,

592

OverloadedOperatorKind Operator)

594

CanonicalTemplateName(this) {}

596

DependentTemplateName(NestedNameSpecifier *Qualifier,

597

OverloadedOperatorKind Operator,

600

CanonicalTemplateName(Canon) {}

611

assert(isIdentifier() &&

"Template name isn't an identifier?"

);

621

assert(isOverloadedOperator() &&

622 "Template name isn't an overloaded operator?"

);

630

Profile(

ID

, getQualifier(), getOperator());

636 ID

.AddBoolean(

false

);

643 ID

.AddBoolean(

true

);

644 ID

.AddInteger(Operator);

664 static constexpr int

NumLowBitsAvailable = 0;

static llvm::GlobalValue::DLLStorageClassTypes getStorage(CodeGenModule &CGM, StringRef Name)

static void dump(llvm::raw_ostream &OS, StringRef FunctionName, ArrayRef< CounterExpression > Expressions, ArrayRef< CounterMappingRegion > Regions)

static Decl::Kind getKind(const Decl *D)

static void print(llvm::raw_ostream &OS, const T &V, ASTContext &ASTCtx, QualType Ty)

Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.

static StringRef getIdentifier(const Token &Tok)

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

A structure for storing the information associated with a name that has been assumed to be a template...

Decl - This represents one declaration (or definition), e.g.

TemplateName getUnderlying() const

DefaultArguments getDefaultArguments() const

Represents a dependent template name that cannot be resolved prior to template instantiation.

OverloadedOperatorKind Operator

The overloaded operator name.

OverloadedOperatorKind getOperator() const

Return the overloaded operator to which this template name refers.

bool isIdentifier() const

Determine whether this template name refers to an identifier.

static void Profile(llvm::FoldingSetNodeID &ID, NestedNameSpecifier *NNS, OverloadedOperatorKind Operator)

NestedNameSpecifier * getQualifier() const

Return the nested name specifier that qualifies this name.

static void Profile(llvm::FoldingSetNodeID &ID, NestedNameSpecifier *NNS, const IdentifierInfo *Identifier)

const IdentifierInfo * getIdentifier() const

Returns the identifier to which this template name refers.

const IdentifierInfo * Identifier

The identifier template name.

void Profile(llvm::FoldingSetNodeID &ID)

bool isOverloadedOperator() const

Determine whether this template name refers to an overloaded operator.

One of these records is kept for each identifier that is lexed.

This represents a decl that may have a name.

Represents a C++ nested name specifier, such as "\::std::vector<int>::".

A structure for storing the information associated with an overloaded template name.

llvm::ArrayRef< NamedDecl * > decls() const

NamedDecl *const * iterator

Represents a template name as written in source code.

static void Profile(llvm::FoldingSetNodeID &ID, NestedNameSpecifier *NNS, bool TemplateKeyword, TemplateName TN)

void Profile(llvm::FoldingSetNodeID &ID)

TemplateName getUnderlyingTemplate() const

Return the underlying template name.

NestedNameSpecifier * getQualifier() const

Return the nested name specifier that qualifies this name.

bool hasTemplateKeyword() const

Whether the template name was prefixed by the "template" keyword.

A structure for storing an already-substituted template template parameter pack.

unsigned getIndex() const

Returns the index of the replaced parameter in the associated declaration.

A structure for storing the information associated with a substituted template template parameter.

TemplateName getReplacement() const

std::optional< unsigned > getPackIndex() const

unsigned getIndex() const

Returns the index of the replaced parameter in the associated declaration.

Decl * getAssociatedDecl() const

A template-like entity which owns the whole pattern being substituted.

Represents a template argument.

The base class of all kinds of template declarations (e.g., class, function, etc.).

Represents a C++ template name within the type system.

bool operator==(TemplateName Other) const

Structural equality.

static TemplateName getFromVoidPointer(void *Ptr)

Build a template name from a void pointer.

bool operator!=(TemplateName Other) const

void * getAsVoidPointer() const

Retrieve the template name as a void pointer.

@ UsingTemplate

A template name that refers to a template declaration found through a specific using shadow declarati...

@ OverloadedTemplate

A set of overloaded template declarations.

@ Template

A single template declaration.

@ DependentTemplate

A dependent template name that has not been resolved to a template (or set of templates).

@ SubstTemplateTemplateParm

A template template parameter that has been substituted for some other template name.

@ SubstTemplateTemplateParmPack

A template template parameter pack that has been substituted for a template template argument pack,...

@ DeducedTemplate

A template name that refers to another TemplateName with deduced default arguments.

@ QualifiedTemplate

A qualified template name, where the qualification is kept to describe the source code as written.

@ AssumedTemplate

An unqualified-id that has been assumed to name a function template that will be found by ADL.

void Profile(llvm::FoldingSetNodeID &ID)

TemplateName getUnderlying() const

void dump(raw_ostream &OS, const ASTContext &Context) const

Debugging aid that dumps the template name.

TemplateTemplateParmDecl - Declares a template template parameter, e.g., "T" in.

Implementation class used to describe either a set of overloaded template names or an already-substit...

SubstTemplateTemplateParmPackStorage * getAsSubstTemplateTemplateParmPack()

UncommonTemplateNameStorage(Kind Kind, unsigned Index, unsigned Data)

@ SubstTemplateTemplateParm

@ SubstTemplateTemplateParmPack

SubstTemplateTemplateParmStorage * getAsSubstTemplateTemplateParm()

AssumedTemplateStorage * getAsAssumedTemplateName()

DeducedTemplateStorage * getAsDeducedTemplateName()

OverloadedTemplateStorage * getAsOverloadedStorage()

Represents a shadow declaration implicitly introduced into a scope by a (resolved) using-declaration ...

@ Decl

The l-value was an access to a declared entity or something equivalently strong, like the address of ...

The JSON file list parser is used to communicate input to InstallAPI.

OverloadedOperatorKind

Enumeration specifying the different kinds of C++ overloaded operators.

bool operator==(const CallGraphNode::CallRecord &LHS, const CallGraphNode::CallRecord &RHS)

const StreamingDiagnostic & operator<<(const StreamingDiagnostic &DB, const ASTContext::SectionInfo &Section)

Insertion operator for diagnostics.

@ Other

Other implicit parameter.

Diagnostic wrappers for TextAPI types for error reporting.

ArrayRef< TemplateArgument > Args

Describes how types, statements, expressions, and declarations should be printed.

unsigned Data

The pack index, or the number of stored templates or template arguments, depending on which subclass ...

static void * getAsVoidPointer(clang::TemplateName TN)

static clang::TemplateName getFromVoidPointer(void *Ptr)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4