2310d专题

2310D,Dll,栈跟踪

原文 帮助 有没有想过,如果运行时拥有调试器功能,会怎样? 对系统语言来说,常见问题是解引用空针.这几乎总是会导致崩溃,很难找到该问题,特别是你不是该项目的原始开发者时. 但是,不要害怕,在此我要讲如何在不需要实际附加调试器时获得有用的调试信息. 在Java中,已存在一个叫NullPointerException的方法,它非常有用,因为它准确地显示了崩溃的内容,地点和时间,这就是本文要实现的目

2310D库功能还是语言功能

原文 把库可实现的功能放进语言是个坏主意. 是的.但是目前该语言缺乏良好方式完成它的工具.需要它: template FOO(T) {alias FOO = T;}pragma(msg, FOO!int); //`FOO`降级成`int`template BAR(alias T) {enum BAR = T;}pragma(msg, BAR!42); //`BAR`降级为`42`/

2310d亚当1009

原文 考虑缓存CTFE结果的潜在新示例:只需在标准运行时函数中,包装它们即可.在模板实例周围使用属性取器,而不是声明变量.表明发射到目标文件,而不是在导入时重新计算. ctfe缓存 SS在Discord聊天室发现了MartinNowak在Phobos中编写的一些旧代码,带有一条奇怪的注释:它说它在自动返回函数中,包装一些ctfe,因此直到实际调用函数时,才会在函数体上运行语义. 在dmd中

2310d模板替换运行时

原文 上周,我开始从我之前的PR中的_d_newarray{i,}T实现开始,把_d_newarraym{i,}T转换为模板.目前,我已实现了新勾挂并更新了降级,但在编译器中遇见了一些测试失败. 修复它们之前,出现了该错误,它是因为我降级到_d_arrayappend{T,cTX}引起的. 我前段时间处理了这些勾挂,并用AST自身中勾挂调用替换了~=. 这在CTFE时产生了问题,因为它们经常调用