clang 20.0.0git
Classes | Namespaces | Enumerations
ExprCXX.h File Reference

Defines the clang::Expr interface and subclasses for C++ expressions. More...

#include "clang/AST/ASTConcept.h"
#include "clang/AST/ComputeDependence.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/AST/UnresolvedSet.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/ExpressionTraits.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Lambda.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TypeTraits.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TrailingObjects.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <optional>

Go to the source code of this file.

Classes

class  clang::CXXOperatorCallExpr
 A call to an overloaded operator written using operator syntax. More...
 
class  clang::CXXMemberCallExpr
 Represents a call to a member function that may be written either with member call syntax (e.g., "obj.func()" or "objptr->func()") or with normal function-call syntax ("func()") within a member function that ends up calling a member function. More...
 
class  clang::CUDAKernelCallExpr
 Represents a call to a CUDA kernel function. More...
 
class  clang::CXXRewrittenBinaryOperator
 A rewritten comparison expression that was originally written using operator syntax. More...
 
struct  clang::CXXRewrittenBinaryOperator::DecomposedForm
 
class  clang::CXXNamedCastExpr
 Abstract class common to all of the C++ "named"/"keyword" casts. More...
 
class  clang::CXXStaticCastExpr
 A C++ static_cast expression (C++ [expr.static.cast]). More...
 
class  clang::CXXDynamicCastExpr
 A C++ dynamic_cast expression (C++ [expr.dynamic.cast]). More...
 
class  clang::CXXReinterpretCastExpr
 A C++ reinterpret_cast expression (C++ [expr.reinterpret.cast]). More...
 
class  clang::CXXConstCastExpr
 A C++ const_cast expression (C++ [expr.const.cast]). More...
 
class  clang::CXXAddrspaceCastExpr
 A C++ addrspace_cast expression (currently only enabled for OpenCL). More...
 
class  clang::UserDefinedLiteral
 A call to a literal operator (C++11 [over.literal]) written as a user-defined literal (C++11 [lit.ext]). More...
 
class  clang::CXXBoolLiteralExpr
 A boolean literal, per ([C++ lex.bool] Boolean literals). More...
 
class  clang::CXXNullPtrLiteralExpr
 The null pointer literal (C++11 [lex.nullptr]) More...
 
class  clang::CXXStdInitializerListExpr
 Implicit construction of a std::initializer_list<T> object from an array temporary within list-initialization (C++11 [dcl.init.list]p5). More...
 
class  clang::CXXTypeidExpr
 A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplied type, or the (possibly dynamic) type of the supplied expression. More...
 
class  clang::MSPropertyRefExpr
 A member reference to an MSPropertyDecl. More...
 
class  clang::MSPropertySubscriptExpr
 MS property subscript expression. More...
 
class  clang::CXXUuidofExpr
 A Microsoft C++ __uuidof expression, which gets the _GUID that corresponds to the supplied type or expression. More...
 
class  clang::CXXThisExpr
 Represents the this expression in C++. More...
 
class  clang::CXXThrowExpr
 A C++ throw-expression (C++ [except.throw]). More...
 
class  clang::CXXDefaultArgExpr
 A default argument (C++ [dcl.fct.default]). More...
 
class  clang::CXXDefaultInitExpr
 A use of a default initializer in a constructor or in aggregate initialization. More...
 
class  clang::CXXTemporary
 Represents a C++ temporary. More...
 
class  clang::CXXBindTemporaryExpr
 Represents binding an expression to a temporary. More...
 
class  clang::CXXConstructExpr
 Represents a call to a C++ constructor. More...
 
class  clang::CXXInheritedCtorInitExpr
 Represents a call to an inherited base class constructor from an inheriting constructor. More...
 
class  clang::CXXFunctionalCastExpr
 Represents an explicit C++ type conversion that uses "functional" notation (C++ [expr.type.conv]). More...
 
class  clang::CXXTemporaryObjectExpr
 Represents a C++ functional cast expression that builds a temporary object. More...
 
class  clang::LambdaExpr
 A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked later. More...
 
class  clang::CXXScalarValueInitExpr
 An expression "T()" which creates an rvalue of a non-class type T. More...
 
class  clang::CXXNewExpr
 Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)". More...
 
class  clang::CXXDeleteExpr
 Represents a delete expression for memory deallocation and destructor calls, e.g. More...
 
class  clang::PseudoDestructorTypeStorage
 Stores the type being destroyed by a pseudo-destructor expression. More...
 
class  clang::CXXPseudoDestructorExpr
 Represents a C++ pseudo-destructor (C++ [expr.pseudo]). More...
 
class  clang::TypeTraitExpr
 A type trait used in the implementation of various C++11 and Library TR1 trait templates. More...
 
class  clang::ArrayTypeTraitExpr
 An Embarcadero array type trait, as used in the implementation of __array_rank and __array_extent. More...
 
class  clang::ExpressionTraitExpr
 An expression trait intrinsic. More...
 
class  clang::OverloadExpr
 A reference to an overloaded function set, either an UnresolvedLookupExpr or an UnresolvedMemberExpr. More...
 
struct  clang::OverloadExpr::FindResult
 
class  clang::UnresolvedLookupExpr
 A reference to a name which we were able to look up during parsing but could not resolve to a specific declaration. More...
 
class  clang::DependentScopeDeclRefExpr
 A qualified reference to a name whose declaration cannot yet be resolved. More...
 
class  clang::ExprWithCleanups
 Represents an expression – generally a full-expression – that introduces cleanups to be run at the end of the sub-expression's evaluation. More...
 
class  clang::CXXUnresolvedConstructExpr
 Describes an explicit type conversion that uses functional notion but could not be resolved because one or more arguments are type-dependent. More...
 
class  clang::CXXDependentScopeMemberExpr
 Represents a C++ member access expression where the actual member referenced could not be resolved because the base expression or the member name was dependent. More...
 
class  clang::UnresolvedMemberExpr
 Represents a C++ member access expression for which lookup produced a set of overloaded functions. More...
 
class  clang::CXXNoexceptExpr
 Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). More...
 
class  clang::PackExpansionExpr
 Represents a C++11 pack expansion that produces a sequence of expressions. More...
 
class  clang::SizeOfPackExpr
 Represents an expression that computes the length of a parameter pack. More...
 
class  clang::PackIndexingExpr
 
class  clang::SubstNonTypeTemplateParmExpr
 Represents a reference to a non-type template parameter that has been substituted with a template argument. More...
 
class  clang::SubstNonTypeTemplateParmPackExpr
 Represents a reference to a non-type template parameter pack that has been substituted with a non-template argument pack. More...
 
class  clang::FunctionParmPackExpr
 Represents a reference to a function parameter pack or init-capture pack that has been substituted but not yet expanded. More...
 
class  clang::MaterializeTemporaryExpr
 Represents a prvalue temporary that is written into memory so that a reference can bind to it. More...
 
class  clang::CXXFoldExpr
 Represents a folding of a pack over an operator. More...
 
class  clang::CXXParenListInitExpr
 Represents a list-initialization with parenthesis. More...
 
class  clang::CoroutineSuspendExpr
 Represents an expression that might suspend coroutine execution; either a co_await or co_yield expression. More...
 
class  clang::CoawaitExpr
 Represents a 'co_await' expression. More...
 
class  clang::DependentCoawaitExpr
 Represents a 'co_await' expression while the type of the promise is dependent. More...
 
class  clang::CoyieldExpr
 Represents a 'co_yield' expression. More...
 
class  clang::BuiltinBitCastExpr
 Represents a C++2a __builtin_bit_cast(T, v) expression. More...
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Enumerations

enum class  clang::CXXConstructionKind { clang::Complete , clang::NonVirtualBase , clang::VirtualBase , clang::Delegating }
 
enum class  clang::CXXNewInitializationStyle { clang::None , clang::Parens , clang::Braces }
 

Detailed Description

Defines the clang::Expr interface and subclasses for C++ expressions.

Definition in file ExprCXX.h.