d相关内容

编译器能否自动检测纯函数,而不需要关于纯度的类型信息?

所以我和我的朋友争辩说,像GCC这样的编译器可以在没有任何类型信息的情况下自动检测纯函数。我怀疑这一点。 像D或Haskell这样的语言在其类型系统中具有纯度,程序员明确定义了哪些函数是纯的。纯函数没有副作用,因此可以很容易地并行化。 所以问题是:这是否必要?编译器是否可以检测纯度,没有任何元数据或类型信息,只要假设任何执行IO或自动访问全局变量的东西都不是纯粹的? 解决方案当然,你可 ..
发布时间:2018-04-20 17:18:07 其他开发

何时删除D?

我从C ++学习了8年。我的问题是关于D垃圾收集 - 我什么时候使用delete,何时不需要? 解决方案 你没有。删除不能与D版本2一起使用,并打算从语言中删除。这是什么,我不确定。相反,您使用一个函数销毁(object),该函数调用析构函数您可以释放非GC内存的资源。在GC收集对象自己的内存期间,析构函数将再次引发。这在“ ..
发布时间:2018-04-19 18:17:03 其他开发

没有垃圾收集器的D编程

今天我一直在看D,表面上看起来相当惊人。我喜欢它如何在语言中直接包含许多更高级别的构造,所以不必使用愚蠢的黑客或简洁的方法。有一件事让我很担心,如果GC。我知道这是一个很大的问题,并且已经阅读了许多关于它的讨论。 我从这里的一个问题发现的简单测试表明,GC非常慢。比直接C ++做同样的事情要慢10倍以上。 (显然,测试并不直接转化为现实世界,但是性能打击是极端的,并且会减缓真实世界的行为发生 ..
发布时间:2018-04-19 18:05:37 其他开发

关闭D垃圾收集器

我是一名C ++程序员,他们考虑将D用于我想要玩的个人项目。我想知道是否有办法彻底禁用垃圾回收器,以及这样做的风险是什么。 我知道我可以通过覆盖新的和删除来使用malloc和free来管理自己的内存,但是如果我这样做了,我宁愿垃圾收集器也不会运行 解决方案 要在D2中关闭GC: import core.memory; void main(string [] args) ..
发布时间:2018-04-19 18:05:33 其他开发

在D中返回函数的函数的纯函数

纯Func multiplyFunctions()函数返回一个纯函数,返回两个其他纯函数的乘法: Func,Real)(范围为const Func f1,范围为const Func f2) { return(Real a){return f1(a)* f2(a); }; } 不幸的是,我遇到了问题,头号问题,我想声明f1和f2是纯函数/委托/类与opCall定义...这是必 ..
发布时间:2018-04-18 16:08:57 其他开发

D中的特征可以用于类型类吗?

我是D的新手,我正在寻找一种使用Haskell类型类编程的好方法,例如Functors,Monoid等等。 类似于在Tango或Phobos中实现的功能吗? 我听说过某些特性可以编译时检查类型的特征。它们可以用于类型类吗? 我已经尝试了一些模板特化,并提出了这个问题: // Monoid.d //通用Monoid在没有类型为Monoid的实例时被调用T class ..
发布时间:2018-04-18 15:43:27 其他开发

如何将字符串转换为漂浮完美的准确性?

我试图用D编程语言编写一个函数来取代C语言的调用。 (原理:从D开始使用strtold,你必须把D字符串转换成C字符串,效率不高,而且strtold在编译时不能执行。)我提出了一个主要工作的实现,但是我似乎在最不重要的位上失去了一些精度。 该算法的有趣部分的代码如下,我可以看到精度损失来自哪里,但我不知道如何摆脱它。 (我遗漏了许多与核心算法无关的代码部分,以免人们读取)。什么字符串到浮点数 ..
发布时间:2017-12-21 21:54:31 其他开发

D中的异常处理开销

在D2编程语言中,使用异常处理的性能是什么?特别是: 如果我不写异常处理代码怎么办? 如果我这样做,但是没有例外会被抛出? 如果我做,异常​​被抛出了怎么办? 异常处理是否导致任何优化机会被错过? 可以在许多(大多数)C ++实现中禁用异常处理? 我知道几乎所有的商业游戏开发工作室都会在其C ++中禁用异常处理,这是因为与正确处理异常相关的性能影响和增加的开发时间。我知道D使后 ..
发布时间:2017-10-01 14:22:12 其他开发

在D中打开一个文件

如果我想安全地尝试在D中打开文件,则是首选的方式。 尝试打开它,捕获异常(并且可选地找出原因)如果失败或 检查是否存在,可读,然后只打开它 我猜想第二个替代结果是更多的IO,更复杂吗? 解决方案 通常情况下,最好检查文件是否存在,因为文件通常很可能不存在,并且简单地让它失败,当你尝试打开它是一个例外使用例外流量控制。在文件不存在的情况下也是低效的,因为D中的异常非常昂贵(尽管 ..
发布时间:2017-09-30 22:07:20 其他开发

枚举vs不可变D

枚举i = 2有什么区别? enum s =“Hello”; 和 immutable i = 2; immutable s =“Hello”; 在D 2.0? 解决方案 枚举是用户定义的类型,而不是变量。 枚举e = 2; 是一个 短的东西像这样的枚举:int {e = 2} (即一个匿名 枚举一个成员 e ),请参见文档。 根据 ..
发布时间:2017-08-23 23:17:28 其他开发

嵌入D(编程语言)

我喜欢很多关于D的内容。 统一文档(这将是 使我的工作很容易) 内置于 语言的测试功能。 以语言调试代码支持。 转发声明。 (我总是 认为这是愚蠢的声明 相同的功能两次。) 内置功能来替换 预处理器。 模块 用于正确类型检查的typedef 而不是别名。 嵌套函数。 (咳嗽 PASCAL 咳嗽) 输入和输出参数。 (多显而易见!) 支持低级编程 - 嵌入式系 ..
发布时间:2017-08-15 20:21:33 HTML/CSS

在嵌入式实时环境中如何使用D?

对于熟悉 D编程语言的所有人员,如何在嵌入式实时环境?我明白,它的原始设计不是实时嵌入式环境的目标,但是这个问题更多地是关于如何实现实时功能。 其中 你看到哪些结构将是一个问题? 有没有人成功地在嵌入式系统中使用它? 任何其他想法或建议都会很棒。 解决方案D不是真正用于实时应用程序,主要是因为D的某些语言功能依赖于其垃圾收集器,D的垃圾回收器是不可预测的,并且会零星地 ..
发布时间:2017-08-15 19:58:14 HTML/CSS

D动态数组初始化,stride和索引操作

对不起,这成了有关数组的三重问题 我认为(动态)数组在D中真的很强大,但是下面一直困扰着我while: 在C ++中,我可以轻松地分配一个具有指定值的数组,但是在DI中没有找到一种方法。当然,以下是没有问题的: int [] a = new int [N]; a [] = a0; 但是看起来效率不高,因为第一行将以 0 ,而像 a0 一样。可以在D中完成类 ..
发布时间:2017-07-22 13:30:39 其他开发

如何在D中创建动态库?

我想在D中创建一个动态库(跨平台),所以我做了一些谷歌搜索。过了一段时间后,我发现了这个页面。我非常惊讶于写作,编译甚至链接到DLL有多么复杂。创建一个共享库的统一方法是不是像C那样? (只是省略主要功能并传递一些标记给链接器) 解决方案 嗯,我决定今天花点时间搞定与此类似,我有一些有用的东西,至少如果主程序也写在D中(在Linux上,我认为它也可以在Windows上工作,原因是我没有链接 ..
发布时间:2017-06-08 19:44:39 .NET组件控件

什么时候模板实例化膨胀问题在实践中?

似乎在C ++和D中,静态编译的语言和哪个模板元编程是一种流行的技术,对模板实例化的膨胀有一个很大的关注。在我看来,除了非常资源有限的嵌入式系统之外,主要是理论上的关注。在嵌入式空间之外,我还没有听到有人能够证明这在实践中是一个问题的例子。 任何人都可以提供一个例外严重资源有限的嵌入式系统,其中模板实例化膨胀在实践中起重要作用,并且具有可衡量的,实际显着的负面影响 解决方案 C ++ ..
发布时间:2017-05-12 20:09:20 C/C++开发

使用Mono-d或Visual-d添加包依赖关系

使用dub可以在dub.json文件中执行此操作: { “name”:“ myproject“, ”description“:”我的一点web服务“, ”作者“:[”Peter Parker“], ”homepage“:”http:// myproject “ ”许可证“:”GPL-2.0“, ”依赖“:{ ”vibe-d“:”> = 0.7.11“ } } Mono ..
发布时间:2017-05-04 18:20:32 其他开发