clang API Documentation
Describes an explicit type conversion that uses functional notion but could not be resolved because one or more arguments are type-dependent. More...
#include <ExprCXX.h>
Public Types | |
typedef Expr ** | arg_iterator |
typedef const Expr *const * | const_arg_iterator |
Public Member Functions | |
QualType | getTypeAsWritten () const |
Retrieve the type that is being constructed, as specified in the source code. | |
TypeSourceInfo * | getTypeSourceInfo () const |
Retrieve the type source information for the type being constructed. | |
SourceLocation | getLParenLoc () const |
Retrieve the location of the left parentheses ('(') that precedes the argument list. | |
void | setLParenLoc (SourceLocation L) |
SourceLocation | getRParenLoc () const |
Retrieve the location of the right parentheses (')') that follows the argument list. | |
void | setRParenLoc (SourceLocation L) |
unsigned | arg_size () const |
Retrieve the number of arguments. | |
arg_iterator | arg_begin () |
arg_iterator | arg_end () |
const_arg_iterator | arg_begin () const |
const_arg_iterator | arg_end () const |
Expr * | getArg (unsigned I) |
const Expr * | getArg (unsigned I) const |
void | setArg (unsigned I, Expr *E) |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
child_range | children () |
Static Public Member Functions | |
static CXXUnresolvedConstructExpr * | Create (const ASTContext &C, TypeSourceInfo *Type, SourceLocation LParenLoc, ArrayRef< Expr * > Args, SourceLocation RParenLoc) |
static CXXUnresolvedConstructExpr * | CreateEmpty (const ASTContext &C, unsigned NumArgs) |
static bool | classof (const Stmt *T) |
Friends | |
class | ASTStmtReader |
Describes an explicit type conversion that uses functional notion but could not be resolved because one or more arguments are type-dependent.
The explicit type conversions expressed by CXXUnresolvedConstructExpr have the form T(a1, a2, ..., aN)
, where T
is some type and a1
, a2
, ..., aN
are values, and either T
is a dependent type or one or more of the a
's is type-dependent. For example, this would occur in a template such as:
template<typename T, typename A1> inline T make_a(const A1& a1) { return T(a1); }
When the returned expression is instantiated, it may resolve to a constructor call, conversion function call, or some kind of type conversion.
typedef const Expr* const* clang::CXXUnresolvedConstructExpr::const_arg_iterator |
arg_iterator clang::CXXUnresolvedConstructExpr::arg_begin | ( | ) | [inline] |
const_arg_iterator clang::CXXUnresolvedConstructExpr::arg_begin | ( | ) | const [inline] |
arg_iterator clang::CXXUnresolvedConstructExpr::arg_end | ( | ) | [inline] |
Definition at line 2891 of file ExprCXX.h.
References arg_begin().
const_arg_iterator clang::CXXUnresolvedConstructExpr::arg_end | ( | ) | const [inline] |
Definition at line 2897 of file ExprCXX.h.
References arg_begin().
unsigned clang::CXXUnresolvedConstructExpr::arg_size | ( | ) | const [inline] |
child_range clang::CXXUnresolvedConstructExpr::children | ( | ) | [inline] |
Reimplemented from clang::Stmt.
static bool clang::CXXUnresolvedConstructExpr::classof | ( | const Stmt * | T | ) | [inline, static] |
Reimplemented from clang::Expr.
Definition at line 2922 of file ExprCXX.h.
References clang::Stmt::getStmtClass().
CXXUnresolvedConstructExpr * CXXUnresolvedConstructExpr::Create | ( | const ASTContext & | C, |
TypeSourceInfo * | Type, | ||
SourceLocation | LParenLoc, | ||
ArrayRef< Expr * > | Args, | ||
SourceLocation | RParenLoc | ||
) | [static] |
Definition at line 1171 of file ExprCXX.cpp.
References clang::ASTContext::Allocate().
Referenced by clang::Sema::BuildCXXTypeConstructExpr().
CXXUnresolvedConstructExpr * CXXUnresolvedConstructExpr::CreateEmpty | ( | const ASTContext & | C, |
unsigned | NumArgs | ||
) | [static] |
Definition at line 1182 of file ExprCXX.cpp.
References clang::ASTContext::Allocate().
Expr* clang::CXXUnresolvedConstructExpr::getArg | ( | unsigned | I | ) | [inline] |
const Expr* clang::CXXUnresolvedConstructExpr::getArg | ( | unsigned | I | ) | const [inline] |
Definition at line 2906 of file ExprCXX.h.
References arg_begin().
SourceLocation clang::CXXUnresolvedConstructExpr::getLocEnd | ( | ) | const [inline] |
Reimplemented from clang::Stmt.
Definition at line 2917 of file ExprCXX.h.
References getArg(), clang::Stmt::getLocEnd(), and clang::SourceLocation::isValid().
Reimplemented from clang::Stmt.
Definition at line 1189 of file ExprCXX.cpp.
References clang::TypeLoc::getBeginLoc(), and clang::TypeSourceInfo::getTypeLoc().
SourceLocation clang::CXXUnresolvedConstructExpr::getLParenLoc | ( | ) | const [inline] |
SourceLocation clang::CXXUnresolvedConstructExpr::getRParenLoc | ( | ) | const [inline] |
QualType clang::CXXUnresolvedConstructExpr::getTypeAsWritten | ( | ) | const [inline] |
Retrieve the type that is being constructed, as specified in the source code.
Definition at line 2870 of file ExprCXX.h.
References clang::TypeSourceInfo::getType().
TypeSourceInfo* clang::CXXUnresolvedConstructExpr::getTypeSourceInfo | ( | ) | const [inline] |
void clang::CXXUnresolvedConstructExpr::setArg | ( | unsigned | I, |
Expr * | E | ||
) | [inline] |
Definition at line 2911 of file ExprCXX.h.
References arg_begin().
void clang::CXXUnresolvedConstructExpr::setLParenLoc | ( | SourceLocation | L | ) | [inline] |
void clang::CXXUnresolvedConstructExpr::setRParenLoc | ( | SourceLocation | L | ) | [inline] |
friend class ASTStmtReader [friend] |
Reimplemented from clang::Stmt.