Comparing reflection capabilities of C++, Zig and C3

(nyr24.github.io)

10 points | by ManuLinares 2 hours ago

3 comments

  • peesem 1 hour ago
    "not an expert in zig" but you can't even look at the documentation to find the `@tagName` builtin to do exactly the problem posed?: https://ziglang.org/documentation/0.16.0/#tagName

    i can literally google "zig enum to string" and the first result is a reddit post where the given solution is `@tagName`. i'm ready to write this post off as a low-effort ad for C3

    • hiccuphippo 17 minutes ago
      If it's for debugging purposes, you can use `{any}` as the format and it will print `.BLUE`

        std.debug.print("{any}\n", .{color});
    • jb1991 1 hour ago
      Agree, the post was extremely low effort.
    • ManuLinares 50 minutes ago
      [dead]
  • RyanVail 48 minutes ago
    Zig doesn't have attributes, but you could just create a thin wrapper struct over an inner type and use setter functions that throw errors on invalid values. Personally I prefer this over attributes because it forces you to handle possible error states from the callers of the setters, instead of relying on you remembering to call `validate` on your types.
  • WalterBright 1 hour ago
    There's a large black zig-zag blocking reading the text.