class DependentSizedArrayType

Declaration

class DependentSizedArrayType : public ArrayType { /* full declaration omitted */ };

Description

Represents an array type in C++ whose size is a value-dependent expression. For example: For these types, we won't actually know what the array bound is until template instantiation occurs, at which point this will become either a ConstantArrayType or a VariableArrayType.

Declared at: clang/include/clang/AST/Type.h:3159

Inherits from: ArrayType

Member Variables

private const clang::ASTContext& Context
private clang::Stmt* SizeExpr
The expression itself might be null, in which case the array type will have its size deduced from an initializer.
private clang::SourceRange Brackets
The range spanned by the left and right array brackets.

Inherited from Type:

protected

Method Overview

  • private DependentSizedArrayType(const clang::ASTContext & Context, clang::QualType et, clang::QualType can, clang::Expr * e, clang::ArrayType::ArraySizeModifier sm, unsigned int tq, clang::SourceRange brackets)
  • public void Profile(llvm::FoldingSetNodeID & ID)
  • public static void Profile(llvm::FoldingSetNodeID & ID, const clang::ASTContext & Context, clang::QualType ET, clang::ArrayType::ArraySizeModifier SizeMod, unsigned int TypeQuals, clang::Expr * E)
  • public static bool classof(const clang::Type * T)
  • public clang::QualType desugar() const
  • public clang::SourceRange getBracketsRange() const
  • public clang::SourceLocation getLBracketLoc() const
  • public clang::SourceLocation getRBracketLoc() const
  • public clang::Expr * getSizeExpr() const
  • public bool isSugared() const

Inherited from ArrayType:

Inherited from FoldingSetBase::Node:

Inherited from Type:

Inherited from ExtQualsTypeCommonBase:

    Methods

    DependentSizedArrayType(
        const clang::ASTContext& Context,
        clang::QualType et,
        clang::QualType can,
        clang::Expr* e,
        clang::ArrayType::ArraySizeModifier sm,
        unsigned int tq,
        clang::SourceRange brackets)

    Declared at: clang/include/clang/AST/Type.h:3174

    Parameters

    const clang::ASTContext& Context
    clang::QualType et
    clang::QualType can
    clang::Expr* e
    clang::ArrayType::ArraySizeModifier sm
    unsigned int tq
    clang::SourceRange brackets

    void Profile(llvm::FoldingSetNodeID& ID)

    Declared at: clang/include/clang/AST/Type.h:3198

    Parameters

    llvm::FoldingSetNodeID& ID

    static void Profile(
        llvm::FoldingSetNodeID& ID,
        const clang::ASTContext& Context,
        clang::QualType ET,
        clang::ArrayType::ArraySizeModifier SizeMod,
        unsigned int TypeQuals,
        clang::Expr* E)

    Declared at: clang/include/clang/AST/Type.h:3203

    Parameters

    llvm::FoldingSetNodeID& ID
    const clang::ASTContext& Context
    clang::QualType ET
    clang::ArrayType::ArraySizeModifier SizeMod
    unsigned int TypeQuals
    clang::Expr* E

    static bool classof(const clang::Type* T)

    Declared at: clang/include/clang/AST/Type.h:3194

    Parameters

    const clang::Type* T

    clang::QualType desugar() const

    Declared at: clang/include/clang/AST/Type.h:3192

    clang::SourceRange getBracketsRange() const

    Declared at: clang/include/clang/AST/Type.h:3187

    clang::SourceLocation getLBracketLoc() const

    Declared at: clang/include/clang/AST/Type.h:3188

    clang::SourceLocation getRBracketLoc() const

    Declared at: clang/include/clang/AST/Type.h:3189

    clang::Expr* getSizeExpr() const

    Declared at: clang/include/clang/AST/Type.h:3181

    bool isSugared() const

    Declared at: clang/include/clang/AST/Type.h:3191