小编Ber*_*ard的帖子

这是有效的YAML吗?

因此,对于我在C#问题中解析文本,我得到了YAML的指导.我正在推荐这个图书馆的墙,所以这是一个快速的.

heading:
 name: A name
 taco: Yes
 age: 32

heading:
 name: Another name
 taco: No
 age: 27
Run Code Online (Sandbox Code Playgroud)

等等.这有效吗?

validation yaml well-formed

4
推荐指数
1
解决办法
3387
查看次数

你可以引用一个命名的枚举,好像它在D中是匿名的吗?

我正在做一个到C库的D桥接器,这就是使用typedef'd枚举的C代码,它引用像常量,但可以为函数参数等命名.例:

enum someLongNameThatTheCLibraryUses
{
    A,
    B,
}
Run Code Online (Sandbox Code Playgroud)

目前,我必须这样说:

someLongNameThatTheCLibraryUses.A;
Run Code Online (Sandbox Code Playgroud)

但我宁愿:

A;
Run Code Online (Sandbox Code Playgroud)

我能做到这一点:

alias someLongNameThatTheCLibraryUses a;
a.A;
Run Code Online (Sandbox Code Playgroud)

但我不想在库模块中这样做,所以我必须在使用它的地方这样做,这会很烦人.

有没有办法做到这一点?

enums d

4
推荐指数
1
解决办法
138
查看次数

我该如何处理D中的C字符串?

我正在将C库的头文件转换为D模块,并且想知道我应该如何处理C字符串.

使用DMD 1,这有效:

void f(char* s);  // Definition for C library's function.
Run Code Online (Sandbox Code Playgroud)

但是使用DMD 2(我个人使用,但我希望这两个模块都适用)字符串是const,所以要使用模块工作需要相同的代码

void f(const(char)* s);  // Definition for C library's function.
Run Code Online (Sandbox Code Playgroud)

我该怎么办?只是使用char*并使"客户端"代码以某种方式使字符串变得可变?或者根据编译代码的编译器版本修改类型?如果是前者,那么使它们变得可变的最佳方法是什么?我以为.dup会这样做,但编译器没有它的条.如果是后者,我该怎么做呢?我试过这个:

version (D_Version2) {
    alias const(char)* charptr;
} else {
    alias char* charptr;
}

void f(charptr s);
Run Code Online (Sandbox Code Playgroud)

但是,DMD 2版本不是DMD 1的有效代码,版本块中的所有代码必须是编译器编译代码的有效代码,即使代码不包含在生成的可执行文件中也是如此.所以目前代码编译在两者中,但你必须首先修改别名,你可以想象,这是不理想的.

string d

4
推荐指数
1
解决办法
322
查看次数

如何初始化D中的全局结构数组?

为了帮助我用D问题填充SO(= p),我遇到了另一个问题; 在全球范围内初始化一系列结构.注意:

struct A
{
    int a;
    float b;
}

A[2] as;
as[0] = {0, 0.0f};
as[1] = {5, 5.2f};

void main() {}
Run Code Online (Sandbox Code Playgroud)

结果是:

$ dmd wtf.d 
wtf.d(8): no identifier for declarator as[0]
wtf.d(9): no identifier for declarator as[1]
Run Code Online (Sandbox Code Playgroud)

通过数字火星的文档,我无法真正看到任何对我来说显而易见的东西,所以我再次转向Stack Overflow的勇敢居民!我猜测错误信息与真正的问题没什么关系,因为[0] 一个标识符(但dmd认为它是一个声明者,AFAICT查看文档,它不是)?

struct d initialization

3
推荐指数
1
解决办法
602
查看次数

标签 统计

d ×3

enums ×1

initialization ×1

string ×1

struct ×1

validation ×1

well-formed ×1

yaml ×1