本文整理汇总了C++中gc::asRecordExpr方法的典型用法代码示例。如果您正苦于以下问题:C++ gc::asRecordExpr方法的具体用法?C++ gc::asRecordExpr怎么用?C++ gc::asRecordExpr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gc
的用法示例。
在下文中一共展示了gc::asRecordExpr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeArg
void SignatureBuilder::writeArg(gc<Expr> expr)
{
// If it's a record, destructure it into the signature.
RecordExpr* record = expr->asRecordExpr();
if (record != NULL)
{
for (int i = 0; i < record->fields().count(); i++)
{
add(record->fields()[i].name);
add(":");
}
return;
}
// Right now, all other exprs mean "some arg goes here".
add("0:");
}
示例2: compileArg
int ExprCompiler::compileArg(gc<Expr> arg)
{
// No arg so do nothing.
if (arg.isNull()) return 0;
RecordExpr* record = arg->asRecordExpr();
if (record != NULL)
{
// Compile each field.
for (int i = 0; i < record->fields().count(); i++)
{
compile(record->fields()[i].value, makeTemp());
}
return record->fields().count();
}
// If we got here, the arg isn't a record, so its a single value.
compile(arg, makeTemp());
return 1;
}