clang API Documentation
Represents a qualified type name for which the type name is dependent. More...
#include <Type.h>
Public Member Functions | |
NestedNameSpecifier * | getQualifier () const |
Retrieve the qualification on this type. | |
const IdentifierInfo * | getIdentifier () const |
Retrieve the type named by the typename specifier as an identifier. | |
bool | isSugared () const |
QualType | desugar () const |
void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &ID, ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, const IdentifierInfo *Name) |
static bool | classof (const Type *T) |
Friends | |
class | ASTContext |
Represents a qualified type name for which the type name is dependent.
DependentNameType represents a class of dependent types that involve a possibly dependent nested-name-specifier (e.g., "T::") followed by a name of a type. The DependentNameType may start with a "typename" (for a typename-specifier), "class", "struct", "union", or "enum" (for a dependent elaborated-type-specifier), or nothing (in contexts where we know that we must be referring to a type, e.g., in a base class specifier). Typically the nested-name-specifier is dependent, but in MSVC compatibility mode, this type is used with non-dependent names to delay name lookup until instantiation.
static bool clang::DependentNameType::classof | ( | const Type * | T | ) | [inline, static] |
Reimplemented from clang::TypeWithKeyword.
Definition at line 4133 of file Type.h.
References clang::Type::getTypeClass().
QualType clang::DependentNameType::desugar | ( | ) | const [inline] |
const IdentifierInfo* clang::DependentNameType::getIdentifier | ( | ) | const [inline] |
Retrieve the type named by the typename specifier as an identifier.
This routine will return a non-NULL identifier pointer when the form of the original typename was terminated by an identifier, e.g., "typename T::type".
Definition at line 4115 of file Type.h.
Referenced by IsStructurallyEquivalent().
NestedNameSpecifier* clang::DependentNameType::getQualifier | ( | ) | const [inline] |
Retrieve the qualification on this type.
Definition at line 4107 of file Type.h.
Referenced by IsStructurallyEquivalent().
bool clang::DependentNameType::isSugared | ( | ) | const [inline] |
void clang::DependentNameType::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | [inline] |
Definition at line 4122 of file Type.h.
Referenced by clang::ASTContext::getDependentNameType().
static void clang::DependentNameType::Profile | ( | llvm::FoldingSetNodeID & | ID, |
ElaboratedTypeKeyword | Keyword, | ||
NestedNameSpecifier * | NNS, | ||
const IdentifierInfo * | Name | ||
) | [inline, static] |
friend class ASTContext [friend] |
Reimplemented from clang::Type.