问题标签 [dmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2428 浏览

operator-overloading - D 中优雅的运算符重载

有一段时间我对 D 的运算符重载方向感到困惑,但现在我意识到它是一个漂亮的系统……如果它只适用于核心类型(int、float 等)。考虑以下代码:

如果它有效,这将是一个漂亮的代码,因为它在一种方法中重载了所有 +=、-=、*= 等运算符。但是,如您所见,它不是开箱即用的。我使用模板创建了一个解决方案(上帝我爱 D):

这很好,只是我更喜欢把所有东西都“放在家里”。有没有办法在没有模板的帮助下完成这项工作?我知道我在这里很挑剔,因为没有性能损失,而且在我需要这样做的情况下导入模块并不难。我只是想知道它是否是内置的,我忽略了一些东西。

0 投票
1 回答
167 浏览

d - dfl_debug.lib 未找到

我正在尝试使用 DFL / Tango 库使用 D 中的 Forms 编译我的第一个应用程序,但编译器第一次尝试说:DFL lib files not found.

然后我尝试编译库,并得到以下错误:

我正在使用DMD compiler, 版本v2.055

我该如何解决?

0 投票
1 回答
1209 浏览

d - dmd 链接器 (OPTLINK) 给出错误 42: Symbol Undefined when using extern

链接以下两个文件会给我一个链接错误:

广告:

乙:


我得到的错误是:

怎么了 ?

__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _

编辑:这是正确的方法:

广告:

乙:

该代码由Joshua Reusch在digitalmars.com 网站上为初学者提供的优秀 D 论坛中提供。

0 投票
3 回答
472 浏览

winapi - 有没有办法创建一个优雅的类成员窗口函数?

Win32 API 中的 Window-Procedure 必须是静态 \ 全局函数,因为它不能采用类对象 (the this) 参数。当然可以使用 hWnd->object 字典等变通方法。

我想知道D是否有办法优雅地解决它,例如为每个对象创建一个微小的成员函数副本(以调用对象的真实处理程序)或我可以分配给WNDCLASS.lpfnWndProc的匿名函数(我知道有匿名函数,但我不能使用他们的extern(Windows)财产)?

我可以做这样的事情:



(省略注册\创建\味精循环...)

Events() 似乎没有触发......我错过了什么吗?

0 投票
1 回答
187 浏览

operator-overloading - D opBinary()() 重载错误?

当我尝试在一个简单的 Vector 结构上重载 opBinary 时,我得到一个奇怪且毫无意义的错误:

我得到的错误很简单:“opBinary(string op)”。没有行号,什么都没有。这显然并没有给我太多的继续。有没有另一种方法来处理这种情况?这是一个已知的错误?

我在 Windows 7 上使用 DMD 2.057。尚未在 Linux 上进行测试。

[编辑] 清理代码以提高可读性。

0 投票
1 回答
454 浏览

monodevelop - Mono-D DMD 编译器问题

借助代码完成和简单重构等功能,在 Mono-D 中编写 D 几乎与在 Visual Studios 中编写 C# 一样高效。一切都在 Linux 上运行良好,只需安装 Mono Develop,添加 Mono-D 存储库,然后构建;但在 Windows 上,我什至无法编译 Hello World。

起初 DMD 似乎找不到 Phobos,但按照入门页面上的说明操作后,我在Object.di文件中收到 21 个错误。诸如"found 'char' when expecting ')'""no identifier for declarator immutable" 之类的错误。

我在 Windows 7 64 位上使用 Mono Develop 2.8.5。

任何人都知道我如何才能让这个工作?

0 投票
1 回答
224 浏览

benchmarking - D performance: union vs @property

I'm in the process of porting, enhancing, and D-atizing our reign SDK from C# to D. Currently working on the Vector2 math module.

Will there be any performance difference between the two structs below? My benchmarks show identical performance, but I'd like to gain a bit of expert insight :)

Obviously I'd like to use the unions for syntactical simplicity. But is there any unforeseen pitfalls with using them? I'm unfamiliar with their low-level details.

On a side note, I'm adding in vector property syntax similar to HLSL/GLSL, e.g., vec1.yxz += vec2.xyz; There's... no.. possible way to do that with unions instead of @property is there?

0 投票
5 回答
1213 浏览

windows-7 - 如何在Win7和dmd(D2)中使用gtkD?

我下载gtkD-1.5.1并解压到某个gtkD目录。我下一步该怎么做?我不明白我是否必须编译并将其链接到某个库,或者只是在我的代码中链接到它?


编辑:(@dsimcha)

dsss buildgtkD 主目录中的命令给了我这个:

但没有创建库?

0 投票
1 回答
112 浏览

d - mixin 报错

示例位于:http ://www.d-programming-language.org/mixin.html ,如下所示:

“生成:”(根据网站):

给我一个错误:

Error: template instance GenStruct!("Foo","bar") GenStruct!("Foo","bar") does not match template declaration GenStruct(char[] Name,char[] M1)

是我的还是他们的虫子?

0 投票
2 回答
238 浏览

benchmarking - D 隐式转换 Vector(T) 类型

比较代码片段 A:

与 B:

在我的基准测试(DMD、Win7)中,A 比 B 快约 50 毫秒。这是为什么?如果 A 更快,我想使用它,但无论我尝试什么,我都无法让 Vector2!double 隐式转换为 Vector2!float。关于如何隐式转换这些类型的任何想法?或者是否有一些论点为什么我不应该隐含地投射它们?

我正在设置 GDC 和 LDC 以使用这些编译器执行此基准测试,但是如果这只是 DMD 优化问题,有人知道吗?