class ImplicitCastExpr
Declaration
class ImplicitCastExpr : public CastExpr, private TrailingObjects { /* full declaration omitted */ };
Description
ImplicitCastExpr - Allows us to explicitly represent implicit type conversions, which have no direct representation in the original source code. For example: converting T[]->T*, void f()->void (*f)(), float->double, short->int, etc. In C, implicit casts always produce rvalues. However, in C++, an implicit cast whose result is being bound to a reference will be an lvalue or xvalue. For example:
Declared at: clang/include/clang/AST/Expr.h:3619
Inherits from: CastExpr, TrailingObjects
Member Variables
Inherited from Stmt:
Method Overview
- public static clang::ImplicitCastExpr * Create(const clang::ASTContext & Context, clang::QualType T, clang::CastKind Kind, clang::Expr * Operand, const clang::CXXCastPath * BasePath, clang::ExprValueKind Cat, clang::FPOptionsOverride FPO)
- public static clang::ImplicitCastExpr * CreateEmpty(const clang::ASTContext & Context, unsigned int PathSize, bool HasFPFeatures)
- private ImplicitCastExpr(clang::QualType ty, clang::CastKind kind, clang::Expr * op, unsigned int BasePathLength, clang::FPOptionsOverride FPO, clang::ExprValueKind VK)
- private ImplicitCastExpr(clang::Stmt::EmptyShell Shell, unsigned int PathSize, bool HasFPFeatures)
- public ImplicitCastExpr(clang::ImplicitCastExpr::OnStack_t _, clang::QualType ty, clang::CastKind kind, clang::Expr * op, clang::ExprValueKind VK, clang::FPOptionsOverride FPO)
- public static bool classof(const clang::Stmt * T)
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getEndLoc() const
- public bool isPartOfExplicitCast() const
- private unsigned int numTrailingObjects(OverloadToken<clang::CXXBaseSpecifier *>) const
- public void setIsPartOfExplicitCast(bool PartOfExplicitCast)
Inherited from CastExpr:
- public children
- public children
- public classof
- public getCastKind
- public getCastKindName
- public getCastKindName
- public getConversionFunction
- public getFPFeatures
- public getFPFeaturesInEffect
- public getStoredFPFeatures
- public getSubExpr
- public getSubExpr
- public getSubExprAsWritten
- public getSubExprAsWritten
- public getTargetFieldForToUnionCast
- public getTargetFieldForToUnionCast
- public getTargetUnionField
- protected getTrailingFPFeatures
- protected getTrailingFPFeatures
- public hasStoredFPFeatures
- public path
- public path
- public path_begin
- public path_begin
- public path_empty
- public path_end
- public path_end
- public path_size
- public setCastKind
- public setSubExpr
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::ImplicitCastExpr* Create(
const clang::ASTContext& Context,
clang::QualType T,
clang::CastKind Kind,
clang::Expr* Operand,
const clang::CXXCastPath* BasePath,
clang::ExprValueKind Cat,
clang::FPOptionsOverride FPO)
static clang::ImplicitCastExpr* Create(
const clang::ASTContext& Context,
clang::QualType T,
clang::CastKind Kind,
clang::Expr* Operand,
const clang::CXXCastPath* BasePath,
clang::ExprValueKind Cat,
clang::FPOptionsOverride FPO)
Declared at: clang/include/clang/AST/Expr.h:3658
Parameters
- const clang::ASTContext& Context
- clang::QualType T
- clang::CastKind Kind
- clang::Expr* Operand
- const clang::CXXCastPath* BasePath
- clang::ExprValueKind Cat
- clang::FPOptionsOverride FPO
¶static clang::ImplicitCastExpr* CreateEmpty(
const clang::ASTContext& Context,
unsigned int PathSize,
bool HasFPFeatures)
static clang::ImplicitCastExpr* CreateEmpty(
const clang::ASTContext& Context,
unsigned int PathSize,
bool HasFPFeatures)
Declared at: clang/include/clang/AST/Expr.h:3663
Parameters
- const clang::ASTContext& Context
- unsigned int PathSize
- bool HasFPFeatures
¶ImplicitCastExpr(clang::QualType ty,
clang::CastKind kind,
clang::Expr* op,
unsigned int BasePathLength,
clang::FPOptionsOverride FPO,
clang::ExprValueKind VK)
ImplicitCastExpr(clang::QualType ty,
clang::CastKind kind,
clang::Expr* op,
unsigned int BasePathLength,
clang::FPOptionsOverride FPO,
clang::ExprValueKind VK)
Declared at: clang/include/clang/AST/Expr.h:3624
Parameters
- clang::QualType ty
- clang::CastKind kind
- clang::Expr* op
- unsigned int BasePathLength
- clang::FPOptionsOverride FPO
- clang::ExprValueKind VK
¶ImplicitCastExpr(clang::Stmt::EmptyShell Shell,
unsigned int PathSize,
bool HasFPFeatures)
ImplicitCastExpr(clang::Stmt::EmptyShell Shell,
unsigned int PathSize,
bool HasFPFeatures)
Description
Construct an empty implicit cast.
Declared at: clang/include/clang/AST/Expr.h:3635
Parameters
- clang::Stmt::EmptyShell Shell
- unsigned int PathSize
- bool HasFPFeatures
¶ImplicitCastExpr(
clang::ImplicitCastExpr::OnStack_t _,
clang::QualType ty,
clang::CastKind kind,
clang::Expr* op,
clang::ExprValueKind VK,
clang::FPOptionsOverride FPO)
ImplicitCastExpr(
clang::ImplicitCastExpr::OnStack_t _,
clang::QualType ty,
clang::CastKind kind,
clang::Expr* op,
clang::ExprValueKind VK,
clang::FPOptionsOverride FPO)
Declared at: clang/include/clang/AST/Expr.h:3645
Parameters
- clang::ImplicitCastExpr::OnStack_t _
- clang::QualType ty
- clang::CastKind kind
- clang::Expr* op
- clang::ExprValueKind VK
- clang::FPOptionsOverride FPO
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/Expr.h:3673
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/Expr.h:3666
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/Expr.h:3669
¶bool isPartOfExplicitCast() const
bool isPartOfExplicitCast() const
Declared at: clang/include/clang/AST/Expr.h:3653
¶unsigned int numTrailingObjects(
OverloadToken<clang::CXXBaseSpecifier*>) const
unsigned int numTrailingObjects(
OverloadToken<clang::CXXBaseSpecifier*>) const
Declared at: clang/include/clang/AST/Expr.h:3639
Parameters
- OverloadToken<clang::CXXBaseSpecifier*>
¶void setIsPartOfExplicitCast(
bool PartOfExplicitCast)
void setIsPartOfExplicitCast(
bool PartOfExplicitCast)
Declared at: clang/include/clang/AST/Expr.h:3654
Parameters
- bool PartOfExplicitCast