在D中获取当前的源文件行

时间:2010-12-15 22:22:56

标签: d

有没有办法让你所在的源文件中的当前行,比如{+ 1}}在C ++中的作用?

1 个答案:

答案 0 :(得分:9)

是的,您可以使用__LINE__。另外,__FILE__

See Keywords section

正如BCS和Jonathan M Davis在评论中指出的那样,__LINE__和朋友有一个特例:当用作模板或函数参数的默认值时,它们会解析为位置调用者,而不是模板或函数的签名。这对于保存呼叫者不必提供此信息非常有用。

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);
     }
}