d的的元组

如下,tupleof用来对接C.

struct Circle {
    float x, y;
    float radius;
    ubyte r, g, b, a;
}

@nogc nothrow
extern(C) void draw_circle (
    float cx, float cy, float radius,
    ubyte r, ubyte g, ubyte b, ubyte a
);

void foo() {
    Circle c = makeCircle();
    draw_circle(c.tupleof);
}

现在,可用静态数组同样:

void foo(int, int, int) { /* ... */ }

int[3] ia = [1, 2, 3];
foo(ia.tupleof); // ==`foo(1, 2, 3);

float[3] fa;
//fa = ia; // 错误
fa.tupleof = ia.tupleof;
assert(fa == [1F, 2F, 3F]);

@mustUseD.100里面实现了.

posted @ 2022-05-30 23:06  zjh6  阅读(25)  评论(0)    收藏  举报  来源