我正在尝试将一些Phobos代码转换为与其对应的Tango代码,但我被这段代码卡住了,我不能完全理解它:
OutBuffer codebuf;
(...)
void gen(Loc loc, uint opcode, uint argc, ...)
{
codebuf.reserve((1 + argc) * uint.sizeof);
codebuf.write(combine(loc, opcode));
for (uint i = 1; i <= argc; i++)
{
codebuf.write(va_arg!(uint)(_argptr));
}
}特别是va_arg导致了这个错误:
dmdscript_tango\irstate.d(215): Error: undefined identifier va_arg
dmdscript_tango\irstate.d(215): Error: function expected before (), not va_arg of type int有谁能分享一些关于如何解决这个问题的见解?:-)
发布于 2011-06-30 06:40:06
你根本不需要更换它。只需导入tango.core.Vararg即可;
或者,如果这不起作用,可以试试tango.stdc.stdarg;
另请参阅http://dsource.org/projects/tango/docs/current/tango.stdc.stdarg.html上的相应文档
发布于 2011-06-29 06:57:08
查看http://d-programming-language.org/phobos/core_vararg.html
void gen(Loc loc, uint opcode, uint argc,...)
{
codebuf.reserve((1 + argc) * uint.sizeof);
codebuf.write(combine(loc, opcode));
va_list v_arg;
va_start(v_arg,argc);
scope(exit)va_end(v_arg);
for (uint i = 1; i <= argc; i++)
{
codebuf.write(va_arg!(uint)(v_arg));
}
}https://stackoverflow.com/questions/6513925
复制相似问题