How does it manage to call the wrong function? I don't even mean like some crazy define or something, I literally mean I can step through, watch it call a Register() function, and instead of jumping to the start of the Register() function, jump to the start of the Deregister() function. Also in the wrong class, but seeing as I'm using templates and some crazy type info stuff that's more understandable.
But the wrong function?
How. Does. That. Even. Happen.