class DependentTemplateName
Declaration
class DependentTemplateName : public Node { /* full declaration omitted */ };
Description
Represents a dependent template name that cannot be resolved prior to template instantiation. This kind of template name refers to a dependent template name, including its nested name specifier (if any). For example, DependentTemplateName can refer to "MetaFun::template apply", where "MetaFun::" is the nested name specifier and "apply" is the template name referenced. The "template" keyword is implied.
Declared at: clang/include/clang/AST/TemplateName.h:462
Inherits from: FoldingSetBase::Node
Member Variables
- private llvm:: PointerIntPair<NestedNameSpecifier*, 1, bool> Qualifier
- The bit stored in this qualifier describes whether the \c Name field is interpreted as an IdentifierInfo pointer (when clear) or as an overloaded operator kind (when set).
- private anonymous struct / union
- private clang::TemplateName CanonicalTemplateName
- The canonical template name for a dependent template name is another dependent template name whose nested name specifier is canonical.
Method Overview
- private DependentTemplateName(clang::NestedNameSpecifier * Qualifier, const clang::IdentifierInfo * Identifier)
- private DependentTemplateName(clang::NestedNameSpecifier * Qualifier, const clang::IdentifierInfo * Identifier, clang::TemplateName Canon)
- private DependentTemplateName(clang::NestedNameSpecifier * Qualifier, clang::OverloadedOperatorKind Operator)
- private DependentTemplateName(clang::NestedNameSpecifier * Qualifier, clang::OverloadedOperatorKind Operator, clang::TemplateName Canon)
- public void Profile(llvm::FoldingSetNodeID & ID)
- public static void Profile(llvm::FoldingSetNodeID & ID, clang::NestedNameSpecifier * NNS, const clang::IdentifierInfo * Identifier)
- public static void Profile(llvm::FoldingSetNodeID & ID, clang::NestedNameSpecifier * NNS, clang::OverloadedOperatorKind Operator)
- public const clang::IdentifierInfo * getIdentifier() const
- public clang::OverloadedOperatorKind getOperator() const
- public clang::NestedNameSpecifier * getQualifier() const
- public bool isIdentifier() const
- public bool isOverloadedOperator() const
Inherited from FoldingSetBase::Node:
Methods
¶DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
const clang::IdentifierInfo* Identifier)
DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
const clang::IdentifierInfo* Identifier)
Declared at: clang/include/clang/AST/TemplateName.h:494
Parameters
- clang::NestedNameSpecifier* Qualifier
- const clang::IdentifierInfo* Identifier
¶DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
const clang::IdentifierInfo* Identifier,
clang::TemplateName Canon)
DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
const clang::IdentifierInfo* Identifier,
clang::TemplateName Canon)
Declared at: clang/include/clang/AST/TemplateName.h:499
Parameters
- clang::NestedNameSpecifier* Qualifier
- const clang::IdentifierInfo* Identifier
- clang::TemplateName Canon
¶DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
clang::OverloadedOperatorKind Operator)
DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
clang::OverloadedOperatorKind Operator)
Declared at: clang/include/clang/AST/TemplateName.h:505
Parameters
- clang::NestedNameSpecifier* Qualifier
- clang::OverloadedOperatorKind Operator
¶DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
clang::OverloadedOperatorKind Operator,
clang::TemplateName Canon)
DependentTemplateName(
clang::NestedNameSpecifier* Qualifier,
clang::OverloadedOperatorKind Operator,
clang::TemplateName Canon)
Declared at: clang/include/clang/AST/TemplateName.h:510
Parameters
- clang::NestedNameSpecifier* Qualifier
- clang::OverloadedOperatorKind Operator
- clang::TemplateName Canon
¶void Profile(llvm::FoldingSetNodeID& ID)
void Profile(llvm::FoldingSetNodeID& ID)
Declared at: clang/include/clang/AST/TemplateName.h:540
Parameters
¶static void Profile(
llvm::FoldingSetNodeID& ID,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Identifier)
static void Profile(
llvm::FoldingSetNodeID& ID,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Identifier)
Declared at: clang/include/clang/AST/TemplateName.h:547
Parameters
- llvm::FoldingSetNodeID& ID
- clang::NestedNameSpecifier* NNS
- const clang::IdentifierInfo* Identifier
¶static void Profile(
llvm::FoldingSetNodeID& ID,
clang::NestedNameSpecifier* NNS,
clang::OverloadedOperatorKind Operator)
static void Profile(
llvm::FoldingSetNodeID& ID,
clang::NestedNameSpecifier* NNS,
clang::OverloadedOperatorKind Operator)
Declared at: clang/include/clang/AST/TemplateName.h:554
Parameters
- llvm::FoldingSetNodeID& ID
- clang::NestedNameSpecifier* NNS
- clang::OverloadedOperatorKind Operator
¶const clang::IdentifierInfo* getIdentifier() const
const clang::IdentifierInfo* getIdentifier() const
Description
Returns the identifier to which this template name refers.
Declared at: clang/include/clang/AST/TemplateName.h:524
¶clang::OverloadedOperatorKind getOperator() const
clang::OverloadedOperatorKind getOperator() const
Description
Return the overloaded operator to which this template name refers.
Declared at: clang/include/clang/AST/TemplateName.h:534
¶clang::NestedNameSpecifier* getQualifier() const
clang::NestedNameSpecifier* getQualifier() const
Description
Return the nested name specifier that qualifies this name.
Declared at: clang/include/clang/AST/TemplateName.h:518
¶bool isIdentifier() const
bool isIdentifier() const
Description
Determine whether this template name refers to an identifier.
Declared at: clang/include/clang/AST/TemplateName.h:521
¶bool isOverloadedOperator() const
bool isOverloadedOperator() const
Description
Determine whether this template name refers to an overloaded operator.
Declared at: clang/include/clang/AST/TemplateName.h:531