On Wednesday, 29 April 2015 at 16:55:58 UTC, bearophile wrote:
Mafi:
https://marfisc.wordpress.com/2015/04/29/using-d-templates-for-gamedev/
What do you think? Any remarks?
The SDL_Event is a union. Accessing it is inherently unsafe for
type consistency and memory safety. The SDL library mitigates
this problem by adding a tag (the member type) which encodes
which union-member is to be used.<
In Rust you use the built-in tagged unions and call it a day...
Well, it is an already existing C library I am only adapting. And
additionally the shonwn template encapsulates the whole outer
loop as well.
[...]
The default should be aligned just like the other cases. Often
is a good idea to use "final switch" with enumerations.
Probably there are ways to make that code more dry, using a
TypeTuple of pairs like ("SDL_QUIT", "quit").
Bye,
bearophile
I cannot use a final switch there because it is not enumerated
type. The values are just constants. Moreover I want to skip
unneeded labels and instead unify them into the default branch.
This is impossible with a final switch.