line 编译指示
line 编译指示可以修改所在语句的代码行信息。这个行信息可在栈回溯信息里看到:
template myassert*(cond: untyped, msg = "") =
if not cond:
# 修改 `raise` 语句运行时的行信息
{.line: instantiationInfo().}:
raise newException(AssertionDefect, msg)
如果 line 带了参数,那么参数需要是 tuple[filename: string, line: int] 的形式; 如果不带参数,那么相当于以 system.instantiationInfo() 为参数。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .