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) |
| SourceRange | getSourceRange () const LLVM_READONLY |
| child_range | children () |
Static Public Member Functions | |
| static CXXUnresolvedConstructExpr * | Create (ASTContext &C, TypeSourceInfo *Type, SourceLocation LParenLoc, Expr **Args, unsigned NumArgs, SourceLocation RParenLoc) |
| static CXXUnresolvedConstructExpr * | CreateEmpty (ASTContext &C, unsigned NumArgs) |
| static bool | classof (const Stmt *T) |
| static bool | classof (const CXXUnresolvedConstructExpr *) |
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 2838 of file ExprCXX.h.
References arg_begin(), and NumArgs.
| const_arg_iterator clang::CXXUnresolvedConstructExpr::arg_end | ( | ) | const [inline] |
Definition at line 2844 of file ExprCXX.h.
References arg_begin(), and NumArgs.
| 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.
| static bool clang::CXXUnresolvedConstructExpr::classof | ( | const CXXUnresolvedConstructExpr * | ) | [inline, static] |
| CXXUnresolvedConstructExpr * CXXUnresolvedConstructExpr::Create | ( | ASTContext & | C, |
| TypeSourceInfo * | Type, | ||
| SourceLocation | LParenLoc, | ||
| Expr ** | Args, | ||
| unsigned | NumArgs, | ||
| SourceLocation | RParenLoc | ||
| ) | [static] |
Definition at line 1007 of file ExprCXX.cpp.
References clang::ASTContext::Allocate().
Referenced by clang::Sema::BuildCXXTypeConstructExpr().
| CXXUnresolvedConstructExpr * CXXUnresolvedConstructExpr::CreateEmpty | ( | ASTContext & | C, |
| unsigned | NumArgs | ||
| ) | [static] |
Definition at line 1020 of file ExprCXX.cpp.
References clang::ASTContext::Allocate().
| Expr* clang::CXXUnresolvedConstructExpr::getArg | ( | unsigned | I | ) | [inline] |
Definition at line 2848 of file ExprCXX.h.
References arg_begin().
| const Expr* clang::CXXUnresolvedConstructExpr::getArg | ( | unsigned | I | ) | const [inline] |
Definition at line 2853 of file ExprCXX.h.
References arg_begin().
| SourceLocation clang::CXXUnresolvedConstructExpr::getLParenLoc | ( | ) | const [inline] |
| SourceLocation clang::CXXUnresolvedConstructExpr::getRParenLoc | ( | ) | const [inline] |
| SourceRange CXXUnresolvedConstructExpr::getSourceRange | ( | ) | const |
SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. We assume AST clients will have a pointer to the respective SourceManager.
Reimplemented from clang::Stmt.
Definition at line 1027 of file ExprCXX.cpp.
References clang::TypeLoc::getBeginLoc(), and clang::TypeSourceInfo::getTypeLoc().
| QualType clang::CXXUnresolvedConstructExpr::getTypeAsWritten | ( | ) | const [inline] |
Retrieve the type that is being constructed, as specified in the source code.
Definition at line 2817 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 2858 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.