这个报错是因为你在一个 @safe 函数中调用了一个 @system 函数。在 DMD2 中,@safe 函数只能调用其他 @safe@trusted 函数,而不能调用 @system 函数,因为 @system 函数可能会引起内存不安全或其他不可预知的行为。

要解决这个问题,你可以考虑以下几种方法:

  1. 将调用 @system 函数的代码移到一个单独的 @system 函数中。

  2. 将调用 @system 函数的代码移到一个 @trusted 函数中。@trusted 函数可以调用 @system 函数,但是需要手动确保其安全性。

  3. 如果你确定调用 @system 函数是安全的,可以将当前函数标记为 @trusted

注意,使用 @trusted 标记函数会使代码变得不安全,因为 D 编译器不会对其进行任何安全检查。因此,应该尽可能避免使用 @trusted 标记函数,除非你确信它是安全的。


原文地址: http://www.cveoy.top/t/topic/e39Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录