在处理编译时功能时,最好在编译时echo
一些东西。如果echo
位于宏中,则已在编译时执行。但是,是否也可以在编译时打印某些内容,例如从全局范围打印内容?我正在寻找像echoStatic
这样的函数:
echoStatic "Compiling 1. set of macros..."
# some macro definitions
echoStatic "Compiling 2. set of macros..."
# more macro definitions
不需要特殊的echoStatic
。这是通过在编译时运行代码的一般解决方案来解决的,即使用static
块:
static:
echo "Compiling 1. set of macros..."
# some macro definitions
static:
echo "Compiling 2. set of macros..."
# more macro definitions
在 C、C++ 和 D 等语言中,通常可以使用编译指示来完成此作业。这也适用于 Nim:
from strformat import `&`
const x = 3
{. hint: &"{$typeof(x)} x = {x}" .} # <file location> Hint: int x = 3
它还打印文件、行和列,这对于编译时调试很有用。