【发布时间】:2014-04-18 14:31:55
【问题描述】:
我听说 D 可以在编译时执行任意用户代码。这是真的?有人可以举个例子(特别是当编译永远不会终止时)?这个功能是干什么用的?另外,如果是这样的话,有没有办法通过一些编译器选项来禁用它(编译器是 dmd)?
【问题讨论】:
-
不是任意代码,编译时只能做纯函数
我听说 D 可以在编译时执行任意用户代码。这是真的?有人可以举个例子(特别是当编译永远不会终止时)?这个功能是干什么用的?另外,如果是这样的话,有没有办法通过一些编译器选项来禁用它(编译器是 dmd)?
【问题讨论】:
是的,部分正确。 D 有compile time function execution,即它具有在编译时执行函数的能力。但是这些功能需要既便携又无副作用。
你会在official documentation of the D language找到深入的解释。
【讨论】: