On Friday, 6 June 2014 at 23:44:04 UTC, Evan Davis wrote:
Hello,
I'm looking to use the Tuple type as a way of generating types
to represent data in a send recieve connection pair. I created
a template to try this:
template s_to_c(UDP packetType) {
static if (packetType == UDP.ping) {
alias Tuple!() s_to_c;
} else static if (packetType == UDP.connect) {
alias Tuple!(byte) s_to_c;
} else static if (packetType == UDP.keep_alive) {
alias Tuple!() s_to_c;
}
}
(UDP is a enum with packet types.)
This works, but it also means that s_to_c(UDP.ping) is the same
type as s_to_c(UDP.keep_alive). I want to be forced to
distinguish between types, even if they contain the same
fields, so that
recieve(
(s_to_c!(UDP.ping) value) { },
(s_to_c!(UDP.keep_alive) value) { }
)
isn't an error.
Any suggestions are welcome, and thanks for any help,
-Evan Davis
Is there any reason you couldn't (or would rather not) use
structs rather than tuples?