On Sat, Mar 29, 2008 at 3:40 PM, Steven Watanabe
AMDG
Robert Dailey wrote:
It seems that so far we've gotten everything done without RTTI, I would hate to introduce it here.
RTTI is not always evil. It may be less efficient to hash the strings, but it is not worse from a design perspective.
I see what you're saying now. Something like this might be in order:
struct Packet { virtual PacketId GetId() const = 0; };
struct WalkPacket : Packet { static const PacketId ID = PID_WALKPACKET; virtual PacketId GetId() const { return ID; } };
Yep. That works. Just thought I'd point out that this is not so very different from RTTI, after all.
In Christ, Steven Watanabe
Well I'm not 100% sure of the performance impact RTTI will have on the application. What I've read is that RTTI can get very expensive in terms of executable size if you have a lot of classes in your application. Unfortunately I don't think I could get away with using strings since the network is assigning integral values to the packets in order to uniquely identify them. I like the string idea because it doesn't have the repetitive code in each derived class (the overridden GetID method that will be the same in each derived class).