有没有办法让你所在的源文件中的当前行,比如{+ 1}}在C ++中的作用?
答案 0 :(得分:9)
是的,您可以使用__LINE__
。另外,__FILE__
。
正如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);
}
}