本文整理汇总了C++中Dsymbol::accept方法的典型用法代码示例。如果您正苦于以下问题:C++ Dsymbol::accept方法的具体用法?C++ Dsymbol::accept怎么用?C++ Dsymbol::accept使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dsymbol
的用法示例。
在下文中一共展示了Dsymbol::accept方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visit
void visit(TemplateInstance *ti)
{
#if LOG
printf("TemplateInstance::toObjFile(%p, '%s')\n", ti, ti->toChars());
#endif
if (!isError(ti) && ti->members)
{
if (!ti->needsCodegen())
{
//printf("-speculative (%p, %s)\n", ti, ti->toPrettyChars());
return;
}
//printf("TemplateInstance::toObjFile(%p, '%s')\n", ti, ti->toPrettyChars());
if (multiobj)
{
// Append to list of object files to be written later
obj_append(ti);
}
else
{
for (size_t i = 0; i < ti->members->dim; i++)
{
Dsymbol *s = (*ti->members)[i];
s->accept(this);
}
}
}
}
示例2: visit
void visit(TemplateInstance *ti)
{
OutBuffer buf;
#if 0
printf("TemplateInstance::mangle() %p %s", ti, ti->toChars());
if (ti->parent)
printf(" parent = %s %s", ti->parent->kind(), ti->parent->toChars());
printf("\n");
#endif
ti->getIdent();
const char *id = ti->ident ? ti->ident->toChars() : ti->toChars();
if (!ti->tempdecl)
ti->error("is not defined");
else
{
Dsymbol *par = ti->isTemplateMixin() ? ti->parent : ti->tempdecl->parent;
if (par)
{
FuncDeclaration *f = par->isFuncDeclaration();
if (f)
mangleExact(f);
else
par->accept(this);
if (result[0] == '_' && result[1] == 'D')
result += 2;
buf.writestring(result);
}
}
buf.printf("%llu%s", (ulonglong)strlen(id), id);
id = buf.extractString();
//printf("TemplateInstance::mangle() %s = %s\n", ti->toChars(), ti->id);
result = id;
}