push 和 pop 编译指示
push/pop 编译指示也是用来控制编译选项的,不过是用于临时性地修改设置然后还原。例子:
{.push checks: off.}
# 由于这一段代码对于执行速度非常关键,所以不做运行时检查
# ... 一些代码 ...
{.pop.} # 恢复原来旧的编译设置
push/pop 能够开关一些来自标准库的编译指示,例如:
{.push inline.}
proc thisIsInlined(): int = 42
func willBeInlined(): float = 42.0
{.pop.}
proc notInlined(): int = 9
{.push discardable, boundChecks: off, compileTime, noSideEffect, experimental.}
template example(): string = "https://nim-lang.org"
{.pop.}
{.push deprecated, used, stackTrace: off.}
proc sample(): bool = true
{.pop.}
对于来自第三方的编译指示,push/pop 是否有效与第三方的实现有关,但是无论如何使用的语法是相同的。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .