本文整理汇总了C++中TypeExpr类的典型用法代码示例。如果您正苦于以下问题:C++ TypeExpr类的具体用法?C++ TypeExpr怎么用?C++ TypeExpr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TypeExpr类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assert
C2::Decl* C2Sema::ActOnAliasType(const char* name, SourceLocation loc, Expr* type, bool is_public) {
assert(name);
assert(type);
#ifdef SEMA_DEBUG
std::cerr << COL_SEMA"SEMA: alias type def " << name << " at ";
loc.dump(SourceMgr);
std::cerr << ANSI_NORMAL"\n";
#endif
if (ast.isInterface()) {
if (is_public) Diag(loc, diag::err_public_in_interface);
is_public = true;
}
TypeExpr* typeExpr = cast<TypeExpr>(type);
if (typeExpr->hasLocalQualifier()) {
Diag(loc, diag::err_invalid_local_typedef);
}
AliasTypeDecl* T = new AliasTypeDecl(name, loc, typeExpr->getType(), is_public);
QualType A = typeContext.getAliasType(T, typeExpr->getType());
T->setType(A);
ast.addType(T);
addSymbol(T);
delete typeExpr;
return T;
}
示例2: isConst
static inline bool isConst(const TypeExpr& te) {
return te.resolved()
? te.resolved()->isConst()
: te.spec()->isConst();
}
示例3: isByRef
static inline bool isByRef(const TypeExpr& te) {
return te.resolved()
? te.resolved()->isReference()
: te.spec()->isByRef();
}