struct ForwardTemplateReference
Declaration
struct ForwardTemplateReference : public Node { /* full declaration omitted */ };
Description
A forward-reference to a template argument that was not known at the point where the template parameter name was parsed in a mangling. This is created when demangling the name of a specialization of a conversion function template: When demangling a specialization of the conversion function template, we encounter the name of the template (including the \c T) before we reach the template argument list, so we cannot substitute the parameter name for the corresponding argument while parsing. Instead, we create a\c ForwardTemplateReference node that is resolved after we parse the template arguments.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1231
Inherits from: Node
Member Variables
- public size_t Index
- public llvm::itanium_demangle::Node* Ref = nullptr
- public bool Printing = false
Inherited from Node:
Method Overview
- public ForwardTemplateReference(size_t Index_)
- public const llvm::itanium_demangle::Node * getSyntaxNode(llvm::itanium_demangle::OutputStream & S) const
- public bool hasArraySlow(llvm::itanium_demangle::OutputStream & S) const
- public bool hasFunctionSlow(llvm::itanium_demangle::OutputStream & S) const
- public bool hasRHSComponentSlow(llvm::itanium_demangle::OutputStream & S) const
- public template <typename Fn>void match(Fn F) const
- public void printLeft(llvm::itanium_demangle::OutputStream & S) const
- public void printRight(llvm::itanium_demangle::OutputStream & S) const
Inherited from Node:
- public dump
- public getBaseName
- public getKind
- public getSyntaxNode
- public hasArray
- public hasArraySlow
- public hasFunction
- public hasFunctionSlow
- public hasRHSComponent
- public hasRHSComponentSlow
- public print
- public printLeft
- public printRight
- public visit
Methods
¶ForwardTemplateReference(size_t Index_)
ForwardTemplateReference(size_t Index_)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1241
Parameters
- size_t Index_
¶const llvm::itanium_demangle::Node* getSyntaxNode(
llvm::itanium_demangle::OutputStream& S) const
const llvm::itanium_demangle::Node* getSyntaxNode(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1269
Parameters
¶bool hasArraySlow(
llvm::itanium_demangle::OutputStream& S) const
bool hasArraySlow(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1257
Parameters
¶bool hasFunctionSlow(
llvm::itanium_demangle::OutputStream& S) const
bool hasFunctionSlow(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1263
Parameters
¶bool hasRHSComponentSlow(
llvm::itanium_demangle::OutputStream& S) const
bool hasRHSComponentSlow(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1251
Parameters
¶template <typename Fn>
void match(Fn F) const
template <typename Fn>
void match(Fn F) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1249
Templates
- Fn
Parameters
- Fn F
¶void printLeft(
llvm::itanium_demangle::OutputStream& S) const
void printLeft(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1276
Parameters
¶void printRight(
llvm::itanium_demangle::OutputStream& S) const
void printRight(
llvm::itanium_demangle::OutputStream& S) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1282