One option I've always thought about for implementing something like this is to use templates. Create an enum for each platform and then create partial implementations as necessary for each platform using the enums.
/* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
