well, that might just be my view, but having a big list of if/else in one single function to perform different operations based on type is "ugly"... You are better off with multiple functions having different signature and the same name.... That's what it was meant for.
As a side note, C++ has a typeid operator but if I remember correctly its use is disabled by some flags the IDE is using. (fno-rtti = no real time type information)