clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Friends
clang::CXXUnresolvedConstructExpr Class Reference

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>

Inheritance diagram for clang::CXXUnresolvedConstructExpr:
Inheritance graph
[legend]
Collaboration diagram for clang::CXXUnresolvedConstructExpr:
Collaboration graph
[legend]

List of all members.

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.
TypeSourceInfogetTypeSourceInfo () 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
ExprgetArg (unsigned I)
const ExprgetArg (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 CXXUnresolvedConstructExprCreate (const ASTContext &C, TypeSourceInfo *Type, SourceLocation LParenLoc, ArrayRef< Expr * > Args, SourceLocation RParenLoc)
static CXXUnresolvedConstructExprCreateEmpty (const ASTContext &C, unsigned NumArgs)
static bool classof (const Stmt *T)

Friends

class ASTStmtReader

Detailed Description

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.

Definition at line 2835 of file ExprCXX.h.


Member Typedef Documentation

Definition at line 2889 of file ExprCXX.h.

Definition at line 2893 of file ExprCXX.h.


Member Function Documentation

Definition at line 2890 of file ExprCXX.h.

Referenced by arg_end(), getArg(), and setArg().

Definition at line 2894 of file ExprCXX.h.

Definition at line 2891 of file ExprCXX.h.

References arg_begin().

Definition at line 2897 of file ExprCXX.h.

References arg_begin().

Retrieve the number of arguments.

Definition at line 2887 of file ExprCXX.h.

Reimplemented from clang::Stmt.

Definition at line 2927 of file ExprCXX.h.

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().

Definition at line 1182 of file ExprCXX.cpp.

References clang::ASTContext::Allocate().

Definition at line 2901 of file ExprCXX.h.

References arg_begin().

Referenced by getLocEnd().

Definition at line 2906 of file ExprCXX.h.

References arg_begin().

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().

Retrieve the location of the left parentheses ('(') that precedes the argument list.

Definition at line 2878 of file ExprCXX.h.

Retrieve the location of the right parentheses (')') that follows the argument list.

Definition at line 2883 of file ExprCXX.h.

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().

Retrieve the type source information for the type being constructed.

Definition at line 2874 of file ExprCXX.h.

Definition at line 2911 of file ExprCXX.h.

References arg_begin().

Definition at line 2879 of file ExprCXX.h.

Definition at line 2884 of file ExprCXX.h.


Friends And Related Function Documentation

friend class ASTStmtReader [friend]

Reimplemented from clang::Stmt.

Definition at line 2856 of file ExprCXX.h.


The documentation for this class was generated from the following files: