这篇教程C++ tyfunc函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中tyfunc函数的典型用法代码示例。如果您正苦于以下问题:C++ tyfunc函数的具体用法?C++ tyfunc怎么用?C++ tyfunc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了tyfunc函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: cpp_symbol_nameSTATIC void cpp_symbol_name(symbol *s){ char *p; p = s->Sident;#if SCPP if (tyfunc(s->Stype->Tty) && s->Sfunc) { if (s->Sfunc->Fflags & Finstance) { Mangle save = mangle; char *q; int len; p = template_mangle(s, s->Sfunc->Fptal); len = strlen(p); q = (char *)alloca(len + 1); memcpy(q, p, len + 1); mangle = save; p = q; } else if (s->Sfunc->Fflags & Foperator) { // operator_name ::= '?' operator_code //CHAR('?'); // already there STR(p); return; } }#endif#if MARS && 0 //It mangles correctly, but the ABI doesn't match, // leading to copious segfaults. At least with the // wrong mangling you get link errors. if (tyfunc(s->Stype->Tty) && s->Sfunc) { if (s->Sfunc->Fflags & Fctor) { cpp_zname(cpp_name_ct); return; } if (s->Sfunc->Fflags & Fdtor) { cpp_zname(cpp_name_dt); return; } }#endif cpp_zname(p);}
开发者ID:AlbertLkn,项目名称:dmd,代码行数:48,
示例2: cpp_symbol_nameSTATIC void cpp_symbol_name(symbol *s){ char *p; p = s->Sident;#if SCPP if (tyfunc(s->Stype->Tty) && s->Sfunc) { if (s->Sfunc->Fflags & Finstance) { Mangle save = mangle; char *q; int len; p = template_mangle(s, s->Sfunc->Fptal); len = strlen(p); q = (char *)alloca(len + 1); memcpy(q, p, len + 1); mangle = save; p = q; } else if (s->Sfunc->Fflags & Foperator) { // operator_name ::= '?' operator_code //CHAR('?'); // already there STR(p); return; } }#endif cpp_zname(p);}
开发者ID:ckamm,项目名称:dmd,代码行数:30,
示例3: typematchint typematch(type *t1,type *t2,int relax){ tym_t t1ty, t2ty; tym_t tym; tym = ~(mTYimport | mTYnaked); return t1 == t2 || t1 && t2 && ( /* ignore name mangling */ (t1ty = (t1->Tty & tym)) == (t2ty = (t2->Tty & tym)) ) && (tybasic(t1ty) != TYarray || t1->Tdim == t2->Tdim || t1->Tflags & TFsizeunknown || t2->Tflags & TFsizeunknown) && (tybasic(t1ty) != TYstruct && tybasic(t1ty) != TYenum && tybasic(t1ty) != TYmemptr || t1->Ttag == t2->Ttag) && typematch(t1->Tnext,t2->Tnext, 0) && (!tyfunc(t1ty) || ((t1->Tflags & TFfixed) == (t2->Tflags & TFfixed) && paramlstmatch(t1->Tparamtypes,t2->Tparamtypes) )) ;}
开发者ID:michelf,项目名称:dmd,代码行数:33,
示例4: allocaSymbol *Dsymbol::toImport(Symbol *sym){ char *id; char *n; Symbol *s; type *t; //printf("Dsymbol::toImport('%s')/n", sym->Sident); n = sym->Sident; id = (char *) alloca(6 + strlen(n) + 1 + sizeof(type_paramsize(sym->Stype))*3 + 1); if (sym->Stype->Tmangle == mTYman_std && tyfunc(sym->Stype->Tty)) { if (config.exe == EX_WIN64) sprintf(id,"__imp_%s",n); else sprintf(id,"_imp__%[email C++ typ函数代码示例 C++ txt函数代码示例
|