Compiler errors D中是否有一种静态打印?
我们有静态分支和特性,另一方面还有契约编程特性。契约之所以伟大,是因为它具有传递正确消息的断言特性。静态检查不会给编译代码带来任何开销。因此,拥有一个在编译时提供适当错误消息的特性自然会非常有帮助 例如,当一个人试图用我的函数得到向量和微分1-形式的叉积时,我可以用断言明确地告诉他关于域的问题,而不是编译器如何看待结构和数组的问题。或者我可以静态地缩小函数参数类型的范围,但是用户必须处理编译器消息,而不是我的Compiler errors D中是否有一种静态打印?,compiler-errors,d,compiler-warnings,Compiler Errors,D,Compiler Warnings,我们有静态分支和特性,另一方面还有契约编程特性。契约之所以伟大,是因为它具有传递正确消息的断言特性。静态检查不会给编译代码带来任何开销。因此,拥有一个在编译时提供适当错误消息的特性自然会非常有帮助 例如,当一个人试图用我的函数得到向量和微分1-形式的叉积时,我可以用断言明确地告诉他关于域的问题,而不是编译器如何看待结构和数组的问题。或者我可以静态地缩小函数参数类型的范围,但是用户必须处理编译器消息,而不是我的 因此,问题是:是否有某种方法可以在编译时打印自定义消息?是的,您可以使用以下几种方法发
因此,问题是:是否有某种方法可以在编译时打印自定义消息?是的,您可以使用以下几种方法发出自定义消息:
pragma(msg,message)
将计算消息
表达式,并在编译期间打印结果静态断言(表达式,消息)
将在编译时计算的表达式
为false时导致编译中止。这是C#error
预处理器指令的D等价物关键字现在可以有解释消息
ctfeWriteln
被建议作为writeln
变量,在CTFE解释期间工作,但目前无法在CTFE解释期间打印已计算的表达式