class SizeOfPackExpr
Declaration
class SizeOfPackExpr : public Expr, private TrailingObjects { /* full declaration omitted */ };
Description
Represents an expression that computes the length of a parameter pack.
Declared at: clang/include/clang/AST/ExprCXX.h:4144
Inherits from: Expr, TrailingObjects
Member Variables
- private clang::SourceLocation OperatorLoc
- The location of the \c sizeof keyword.
- private clang::SourceLocation PackLoc
- The location of the name of the parameter pack.
- private clang::SourceLocation RParenLoc
- The location of the closing parenthesis.
- private unsigned int Length
- After partial substitution into a sizeof...(X) expression (for instance, within an alias template or during function template argument deduction), we store a trailing array of partially-substituted TemplateArguments, and this is the length of that array.
- private clang::NamedDecl* Pack = nullptr
- The parameter pack.
Inherited from Stmt:
Method Overview
- public static clang::SizeOfPackExpr * Create(clang::ASTContext & Context, clang::SourceLocation OperatorLoc, clang::NamedDecl * Pack, clang::SourceLocation PackLoc, clang::SourceLocation RParenLoc, Optional<unsigned int> Length = None, ArrayRef<clang::TemplateArgument> PartialArgs = None)
- public static clang::SizeOfPackExpr * CreateDeserialized(clang::ASTContext & Context, unsigned int NumPartialArgs)
- private SizeOfPackExpr(clang::QualType SizeType, clang::SourceLocation OperatorLoc, clang::NamedDecl * Pack, clang::SourceLocation PackLoc, clang::SourceLocation RParenLoc, Optional<unsigned int> Length, ArrayRef<clang::TemplateArgument> PartialArgs)
- private SizeOfPackExpr(clang::Stmt::EmptyShell Empty, unsigned int NumPartialArgs)
- public clang::Stmt::child_range children()
- public clang::Stmt::const_child_range children() const
- public static bool classof(const clang::Stmt * T)
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getEndLoc() const
- public clang::SourceLocation getOperatorLoc() const
- public clang::NamedDecl * getPack() const
- public unsigned int getPackLength() const
- public clang::SourceLocation getPackLoc() const
- public ArrayRef<clang::TemplateArgument> getPartialArguments() const
- public clang::SourceLocation getRParenLoc() const
- public bool isPartiallySubstituted() const
Inherited from Expr:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶static clang::SizeOfPackExpr* Create(
clang::ASTContext& Context,
clang::SourceLocation OperatorLoc,
clang::NamedDecl* Pack,
clang::SourceLocation PackLoc,
clang::SourceLocation RParenLoc,
Optional<unsigned int> Length = None,
ArrayRef<clang::TemplateArgument>
PartialArgs = None)
static clang::SizeOfPackExpr* Create(
clang::ASTContext& Context,
clang::SourceLocation OperatorLoc,
clang::NamedDecl* Pack,
clang::SourceLocation PackLoc,
clang::SourceLocation RParenLoc,
Optional<unsigned int> Length = None,
ArrayRef<clang::TemplateArgument>
PartialArgs = None)
Declared at: clang/include/clang/AST/ExprCXX.h:4197
Parameters
- clang::ASTContext& Context
- clang::SourceLocation OperatorLoc
- clang::NamedDecl* Pack
- clang::SourceLocation PackLoc
- clang::SourceLocation RParenLoc
- Optional<unsigned int> Length = None
- ArrayRef<clang::TemplateArgument> PartialArgs = None
¶static clang::SizeOfPackExpr* CreateDeserialized(
clang::ASTContext& Context,
unsigned int NumPartialArgs)
static clang::SizeOfPackExpr* CreateDeserialized(
clang::ASTContext& Context,
unsigned int NumPartialArgs)
Declared at: clang/include/clang/AST/ExprCXX.h:4202
Parameters
- clang::ASTContext& Context
- unsigned int NumPartialArgs
¶SizeOfPackExpr(
clang::QualType SizeType,
clang::SourceLocation OperatorLoc,
clang::NamedDecl* Pack,
clang::SourceLocation PackLoc,
clang::SourceLocation RParenLoc,
Optional<unsigned int> Length,
ArrayRef<clang::TemplateArgument> PartialArgs)
SizeOfPackExpr(
clang::QualType SizeType,
clang::SourceLocation OperatorLoc,
clang::NamedDecl* Pack,
clang::SourceLocation PackLoc,
clang::SourceLocation RParenLoc,
Optional<unsigned int> Length,
ArrayRef<clang::TemplateArgument> PartialArgs)
Description
Create an expression that computes the length of the given parameter pack.
Declared at: clang/include/clang/AST/ExprCXX.h:4177
Parameters
- clang::QualType SizeType
- clang::SourceLocation OperatorLoc
- clang::NamedDecl* Pack
- clang::SourceLocation PackLoc
- clang::SourceLocation RParenLoc
- Optional<unsigned int> Length
- ArrayRef<clang::TemplateArgument> PartialArgs
¶SizeOfPackExpr(clang::Stmt::EmptyShell Empty,
unsigned int NumPartialArgs)
SizeOfPackExpr(clang::Stmt::EmptyShell Empty,
unsigned int NumPartialArgs)
Description
Create an empty expression.
Declared at: clang/include/clang/AST/ExprCXX.h:4193
Parameters
- clang::Stmt::EmptyShell Empty
- unsigned int NumPartialArgs
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/ExprCXX.h:4251
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/ExprCXX.h:4255
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/ExprCXX.h:4246
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4243
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4244
¶clang::SourceLocation getOperatorLoc() const
clang::SourceLocation getOperatorLoc() const
Description
Determine the location of the 'sizeof' keyword.
Declared at: clang/include/clang/AST/ExprCXX.h:4206
¶clang::NamedDecl* getPack() const
clang::NamedDecl* getPack() const
Description
Retrieve the parameter pack.
Declared at: clang/include/clang/AST/ExprCXX.h:4215
¶unsigned int getPackLength() const
unsigned int getPackLength() const
Description
Retrieve the length of the parameter pack. This routine may only be invoked when the expression is not value-dependent.
Declared at: clang/include/clang/AST/ExprCXX.h:4221
¶clang::SourceLocation getPackLoc() const
clang::SourceLocation getPackLoc() const
Description
Determine the location of the parameter pack.
Declared at: clang/include/clang/AST/ExprCXX.h:4209
¶ArrayRef<clang::TemplateArgument>
getPartialArguments() const
ArrayRef<clang::TemplateArgument>
getPartialArguments() const
Description
Get
Declared at: clang/include/clang/AST/ExprCXX.h:4237
¶clang::SourceLocation getRParenLoc() const
clang::SourceLocation getRParenLoc() const
Description
Determine the location of the right parenthesis.
Declared at: clang/include/clang/AST/ExprCXX.h:4212
¶bool isPartiallySubstituted() const
bool isPartiallySubstituted() const
Description
Determine whether this represents a partially-substituted sizeof... expression, such as is produced for: template <typename ...Ts> using X = int[sizeof...(Ts)]; template <typename ...Us> void f(X <Us ..., 1, 2, 3, Us...>);
Declared at: clang/include/clang/AST/ExprCXX.h:4232