6

是否可以comptime在 zig 中创建一个会生成新结构类型的函数?该函数将接收一个字符串数组和一个类型数组。字符串是后续结构字段的名称。

4

2 回答 2

11

这现在已经实现为https://github.com/ziglang/zig/pull/6099

const builtin = @import("std").builtin;
const A = @Type(.{
    .Struct = .{
        .layout = .Auto,
        .fields = &[_]builtin.TypeInfo.StructField{
            .{ .name = "one", .field_type = i32, .default_value = null, .is_comptime = false, .alignment = 0 },
        },
        .decls = &[_]builtin.TypeInfo.Declaration{},
        .is_tuple = false,
    },
});
test "" {
    const a: A = .{ .one = 25 };
}

TypeInfo 结构在这里定义。

于 2020-09-12T09:38:55.247 回答
2

部分。这已经在https://github.com/ziglang/zig/issues/383提出了很长时间

您只能使用 来这样做fields,而不能使用 custom decls

于 2020-05-02T02:58:41.883 回答