d相关内容

具有mixin和模板的结构组合

我可以组成一个 AB 结构,该结构具有结构 A 和的所有成员B : template AFields(){int a;} struct A {mixin AFields; } 模板BFields(){int b;} struct B {mixin BFields; } struct AB {mixin AFields; mixin BFields; } A a; a.a ..
发布时间:2020-10-14 20:43:58 其他开发

是否有D的HTML解析?

我正在寻找一种D语言的HTML解析(如果可能,该解析支持XPath)。我做了一些谷歌搜索,但是没有运气(用“ D”关键字很难找到解决方案;就像C,我说“ C”,谷歌说 C#。)。在 http://www.dsource.org 和 https://stackoverflow.com/questions/tagged/html-parsing+d 也没有。 解决方案 查看Adam Ruppe ..
发布时间:2020-10-14 20:43:57 其他开发

泛型类型的签名约束

结构S(int a,int b){} void fun(T)(T t){} 我希望 Fun 与 S 。签名约束会是什么样? 我不能让 fun 成为 S ,并使用 void fun(T)(T t)if(is(T:S)){} 我得到错误:结构t1.S(int a,int b)被用作类型 解决方案 S 不是类型。这是一种类型的模板。 S!(5,4)是一 ..
发布时间:2020-10-14 20:42:54 其他开发

非会员范围功能

我有一个要为其实现范围的类。我想以phobos库的方式(即在主类之外)实现这些功能。 void popBack(T)(ref T [] a)if(!is(Unqual!T == char)& &!is(Unqual!T == wchar)) { assert(a.length); a = a [0 .. $-1]; } 这是我的版本: void pop ..
发布时间:2020-10-14 20:42:50 其他开发

无法从D中的std.range切片Take!R吗?

我正在尝试使用slice运算符从std.range获取take函数的返回值的分片。我的代码: auto tempChunk = ['a','b','c','d']; auto a = tempChunk.take(3); writeln(a [0..2]); 在这种情况下,作为Take!R只是char []的别名,我希望这个编译。但是,编译器告诉我 Take!(c ..
发布时间:2020-10-14 20:42:49 其他开发

为什么std.algorithm.fill不接受字符数组?

如果我尝试使用std.algorithm.fill(Range1,Range2)(Range1范围,Range2填充符),则会不断收到错误消息,指出找不到模板匹配项。看起来编译器正在尝试与填充(范围,值)匹配,而不是与另一个匹配。 自动测试=新字符[256] ; fill(test,“ abc” .dup); 是否不能使用fill填充字符数组? 错误 ..
发布时间:2020-10-14 20:42:43 其他开发

如果main为空,D如何在成功时返回0而在失败时返回非零?

在D中,定义了 main 函数: void main(/ *也许有些args,但我不记得* /) { } 我确定该函数成功返回零,失败返回非零,但它被定义为不返回任何东西。背后的逻辑是什么? 解决方案 具有void返回类型的函数不会返回任何值。当您认为调用堆栈看起来像这样时,没有什么不合逻辑的: OS-> D运行时-> main ..
发布时间:2020-10-14 20:41:38 其他开发

使用Dlang计数目录中的文件

我想使用D来计算目录中文件的数量。 据D手册,dirEntries返回一个范围,但是没有length属性。因此,我必须使用计数器来遍历结果,或者以传统数组的形式收集名称,这些数组可以找到...的长度。是否有更好的方法? auto txtFiles = dirEntries(“。”,“ * .txt”,SpanMode.shallow); int i = 0; foreac ..
发布时间:2020-10-14 20:40:33 其他开发

在Ubuntu的D程序中使用Sqlite的最简单方法是什么?

我想使用 phobos.etc.c.sqlite3 绑定。使用C编译器编译sqlite3.c来创建.o文件,然后将其链接到我的程序。 我应该使用哪个C编译器,以及哪些编译器标志? 是否可以一步将sqlite3.o与DMD链接,而无需分别调用链接器? 还是还有其他更简单的方法? 答案:如何在64位Ubuntu上使Sqlite与D配合使用 install sqlite dev ..
发布时间:2020-10-14 20:40:31 数据库

在运行时设置缓冲区长度时,如何使用read(ubyte [] buffer)读取BufferedFile?

我有一个二进制文件,实际上是文件的堆栈,格式为: lengh_of_subfile,subfile length_of_subfile 是64位整数。我可以读取 long 没问题,但是当我尝试为子文件创建缓冲区时,出现编译错误,提示无法在编译时读取。我想念什么?我用erlang,PHP和C#编写了一个相同的提取工具... D让我陷入循环。 void main ..
发布时间:2020-10-14 20:39:26 其他开发

如何在D中进行系统调用并读取标准输出?

我想尝试将 D 用于一些需要高性能的系统管理脚本(用于比较性能)使用python / perl等)。 到目前为止,在我看过的教程(dsource.org等)中找不到一个示例。 如果我错过了它,有人可以将我指向正确的文档/教程,或者提供它吗? 解决方案 好吧,那我当然找到了: http://www.digitalmars.com/d/2.0/phobos/std_process. ..
发布时间:2020-10-14 20:39:24 其他开发

将临时字符数组转换为D中的字符串

我正在学习D语言(我非常了解C ++)...我想做一些Windows特定的东西,所以我写这个只是为了尝试API: 导入core.sys.windows.windows; import std.stdio; 字符串name() { char buffer [100]; uint大小= 100; GetComputerNameA(& buffer [0],& size) ..
发布时间:2020-10-14 20:38:21 其他开发

为什么在D中使用static?

我一直在用D语言阅读模板系统,并遇到了一个不寻常的结构,静态if 。 根据我设法掌握的内容,在编译时对其进行了评估,但根据我的搜索结果,该示例显示了此处并没有启发我。 template Factorial(ulong n) { 静态if(n const阶乘= 1; else const阶乘= n *阶乘!(n-1); } 如果静态是什么? >做,我什么 ..
发布时间:2020-10-14 20:37:19 其他开发

D模板专门化在不同的源文件中

我最近问了这个问题,该问题关于如何在D中模拟类型类,并提出了一种方法 我发现D无法识别其他源文件中的模板专业化。因此,我不能只对未定义通用函数的文件中包含的文件进行专门化处理。为了说明这一点,请考虑以下示例: // template.d import std.stdio; template Generic(A){ void sayHello(){ writefln(“ G ..
发布时间:2020-10-14 20:36:15 其他开发

D中的螺纹上的光纤

我正在D中测试线程和Fiber,我想知道在主线程运行时是否可以在其他CPU上运行Fiber。如果不是这种情况,那么使用基于线程的光纤的原因将是什么。 (非常欢迎实际的例子) 我试图用Fibers编写一些初始程序,一段时间后我切换到下一个光纤。但是,我注意到cpu的使用仅停留在一个cpu上。 D的文档指出: 请注意,不要求将光纤绑定到一个 特定线程。相反,只要它们当前不执行,光纤 ..
发布时间:2020-10-14 20:36:11 其他开发

静态数组是一个正向范围吗?

这有效: int [] a = [1,2,3,4]; fill(a,5); 但这不是: int [4] a = [1,2,3,4]; fill(a,5); ,我收到此错误: 错误:如果(isForwardRange!(Range)&& is(typeof(range.front = filler)))与任何函数模板声明 ..
发布时间:2020-10-14 20:35:00 其他开发

从D中的字符串获取纯字符*?

我在一次绝对的麻烦中试图弄清楚如何从D字符串(一个不可变(char)[])中获取一个普通的,可变的C字符串(一个char *),以便我可以传递字符数据转换为旧版C代码。 toStringz不起作用,因为我收到一条错误消息,说我“无法将immutable(char)*类型的表达式(toStringz(this.fileName())隐式转换为char *”)。我是否需要重新创建一个可变的char新数 ..
发布时间:2020-10-14 20:34:43 其他开发

用接口处理一个类?

interface Bar { } class Foo:Bar { int i; this(int _i){ i = _i; } } void main(){ import std.experimental.allocator.mallocator; import std.experimental.allocator; auto f = Mallocator.i ..
发布时间:2020-10-14 20:34:40 其他开发