获取D中源文件的当前行 < P>是否有一种方法在源文件中获取当前行,如< C++ >代码> > /P> < P> YP,可以使用另外,\uuuuuu文件

获取D中源文件的当前行 < P>是否有一种方法在源文件中获取当前行,如< C++ >代码> > /P> < P> YP,可以使用另外,\uuuuuu文件,d,D,正如BCS和Jonathan M Davis在评论中指出的那样,\uuuu LINE\uuuu和friends有一个特例:当用作模板或函数参数的默认值时,它们解析到调用方的位置,而不是模板或函数的签名。这非常有助于避免来电者提供此信息 void myAssert(T)(lazy T expression, string file = __FILE__, int line = __LINE__) { if (!expression) { // Write t

正如BCS和Jonathan M Davis在评论中指出的那样,
\uuuu LINE\uuuu
和friends有一个特例:当用作模板或函数参数的默认值时,它们解析到调用方的位置,而不是模板或函数的签名。这非常有助于避免来电者提供此信息

void myAssert(T)(lazy T expression, string file = __FILE__, int line = __LINE__)
{
     if (!expression)
     {
          // Write the caller location
          writefln("Assert failure at %s:%s", file, line);
     }
}

太好了,谢谢。我知道他们在修改std-lib文件时不必更改异常行中的所有行号:)FWIW:
\uuuu-line\uuuu
与C中的行号不完全相同。至少有一种情况是不同的:如果它用作参数的默认值,它解析为使调用不是定义函数的行的行。这在创建测试函数时非常有用,因为您希望任何失败都报告调用行,而不是在测试函数内部。