d相关内容

D中使用for循环的多线程

我知道Rust可以使用轻量级线程运行循环.像这样: use task::spawn; fn main() { for 100.times { do spawn { io::println("Hello"); } } 我如何在D中做到这一点? 解决方案 相关API文档: std.parallelism 以下是完成示例的几种方法: 使 ..
发布时间:2020-05-13 23:40:36 其他开发

为什么线程本地存储这么慢?

我正在为D编程语言开发自定义标记释放样式的内存分配器,该分配器通过从线程局部区域分配来工作.与在其他方面相同的单线程版本代码相比,线程本地存储瓶颈似乎导致从这些区域分配内存的速度大幅度降低(〜50%),即使在设计我的代码后每次分配/只能进行一次TLS查找/释放.这是基于在循环中大量分配/释放内存的,而我正在尝试弄清这是否是我的基准测试方法的产物.我的理解是,线程本地存储基本上应该只涉及通过额外的间 ..
发布时间:2020-05-13 22:18:19 其他开发

关于postblit和move语义的问题

前段时间我已经问过类似的问题,但是我仍然不清楚一些细节. 在什么情况下,postblit构造函数被称为? 移动对象的语义是什么?它会被过时和/或破坏吗? 如果我按值返回局部变量会怎样?会隐式地移动吗? 如何将表达式强制转换为右值?例如,通用交换的外观如何? 解决方案 每当复制结构时都会调用postblit构造函数-例如将结构传递给函数时. 移动是按位复制. ..

使用foreach循环-无法读取变量

应该很简单,但事实并非如此. 这是我的代码: string cases() { string ret = ""; string[] methods; methods = [__traits(derivedMembers,mixin("Math"))]; foreach (string s; methods) ret ~= "case \"" ~ s ~ ..
发布时间:2020-05-09 23:27:46 其他开发

通过混合列出类的方法

我想在mixin中列出类的方法. 要做到这一点,我假设我必须打开在mixin中包含源代码的文件,但是要找到该文件的名称比我想象的要难. 我尝试使用 __FILE__ 但是它提供了mixin声明的文件...所以我将不得不在每个文件中定义mixin ...这没有任何意义,因为目标是减少样板代码. 现在,我的解决方案是将文件名作为参数传递给类的构造函数,然后从那里调用mixi ..
发布时间:2020-05-09 23:27:04 其他开发

删除D元编程/编译时数组生成的突变

我的计划是用D语言编写一个无变异的代码,以便我的值在运行时可用.有人跟我谈到了循环展开和编译时代码生成的问题,但我不清楚如何做到这一点.我在下面做了D模板,但是不能保证在编译时会进行评估,因为这是在两个赋值语句(突变)上进行的.建议将不胜感激.建议最好是在没有宏的D或C ++中使用. import std.stdio; import std.string; import std.conv; ..
发布时间:2020-05-09 02:27:05 其他开发

D对这些功能是否足够强大?

在最长的时间内,我想设计一种将可扩展性与效率(以及安全性,易用性等)结合在一起的编程语言,最近我重新发现了D,我想知道D 2.0是否真的是我想要的语言使自己.我最喜欢的是元编程的潜力.从理论上讲,D的 traits 系统能否在编译时启用以下功能? 运行时反射:编译时反射功能是否足以在Java/.NET中构建运行时反射系统? 代码转换:使用元程序创建C#/C ++/etc.您每次编译D程 ..
发布时间:2020-05-09 02:23:27 其他开发

D模板可用于的示例

我听说D语言具有强大的元编程功能,可以在编译时执行功能.这听起来很令人兴奋,但是我发现很难想到没有它们很难完成的实际例子. 有人可以举例说明D的元编程功能非常方便吗? 解决方案 如果您想了解有关如何使用D的元编程工具的实际示例(CTFE或编译时函数求值,仅是其中之一,甚至不是最重要的)一个)看起来比D2标准库Phobos更好.大部分代码是由Andrei Alexandrescu编写的 ..
发布时间:2020-05-09 02:13:20 其他开发

链接器错误;无法链接:_D16TypeInfo_HAyayAa6__initZ

链接代码时,出现以下错误: ../Build/main.o :(.data._D16TypeInfo_yHAyaAa6__initZ + 0x10):未定义对'_D16TypeInfo_HAyayAa6__initZ'的引用 我不知道错误发生在哪里,因此我无法为您提供太多代码.有很多代码. 解决方案 尝试使用main()将这段代码添加到您的文件中: void aaHack ..
发布时间:2020-05-01 03:49:09 其他开发

MPI和D:链接器选项

我正在尝试将MPI与D编程语言一起使用. D完全支持C ABI,并且可以链接和调用任何C代码.我已经完成了显而易见的工作,并将MPI标头转换为D.然后,我翻译了 Wikipedia 到D.我使用以下命令对其进行了编译: dmd test.d -L-lmpistubs 它在我刚运行./test并打印时起作用: 0: We have 1 processors 但是,当我使用mp ..
发布时间:2020-05-01 03:37:08 其他开发

D的快速线性系统求解器?

在哪里可以获得用D编写的快速线性系统求解器?它应能够采用方阵 A 和向量 b 并求解方程 Ax = b b ,并且最好在 A 上执行显式倒置.我有一个我自己写的,但是它很慢,可能是因为它完全是幼稚的.但是,对于我的用例,我需要具有以下 绝对的,不可协商的 要求的东西,即,如果不满足这些要求,那么我不在乎否则效果如何? 必须已获得公共域许可,Boost许可或某些类似的宽松许可.理想情况下,它不 ..
发布时间:2020-04-30 10:38:32 其他开发

懒惰地读取D中的文件

我正在用D编写目录树扫描功能,该功能试图结合grep和file之类的工具,并且有条件地grep组合文件中的内容,前提是 not 不匹配一组指示字节的魔术字节文件类型,例如ELF,图像等. 从最小化文件io的角度来看,使这种排除逻辑尽可能快地运行的最佳方法是什么?如果只需要在开始时读取一些魔术字节,通常我就不想读取整个文件.但是,为了使代码更通用(某些魔术可能位于开头或结尾处的其他地方),如果 ..
发布时间:2020-04-30 08:27:50 其他开发

如何在D2(Phobos)中获得单个击键?

是否有一种简单的跨平台方法可以使用Phobos在D2中获得单个击键? 例如,出现“按任意键继续..."提示或Brainfuck解释器. 我尝试过的所有方法在传递输入(例如,getchar())之前都需要按Enter键. 解决方案 我对此事进行了一些研究,发现虽然D 1.0下的Phobos库确实具有您需要的形式, std.c.stdio.getch(),D 2.0缺少此功能. P ..
发布时间:2020-04-26 08:04:11 其他开发

在GTK +中处理按键(gtkD)

我正在玩 gtkD (一个GTK +的D绑定) 我有一个窗口对象, gtk.MainWindow 的实例。我想处理它的按键。如何处理特殊键(例如箭头键,pgup / pgdn)?b $ b等等)? PS我知道这些问题可以通过google和东西,但我已经看到了很多“简单”的问题在stackoverflow,所以我认为要求没有伤害。 另外,有时,基本的东西往往被埋在 解决方案 ..
发布时间:2018-05-30 17:22:53 其他开发

GtkD与Fedora上的D lang

我使用Fedora20并通过 安装gtkd sudo yum install gtkd 如何编译gtk这段代码? import gtk.MainWindow; 导入gtk.Label; 导入gtk.Main; void main(string [] args) { Main.init(args); MainWindow win = new MainWindow( ..
发布时间:2018-05-30 17:20:19 其他开发

D语言中的并行迭代器

我试图在D语言中实现一个图形数据结构,它支持节点和边集上的并行迭代。 别名ulong索引; 别名索引节点; 别名ulong count; class图{ index z; //最大节点索引 count n; //节点数 count m; //边的数量 node [] [] adja; //邻接列表 count [] deg; //节点度 this(count n ..
发布时间:2018-05-25 17:33:21 其他开发