Manually managed hash code replaced with typeid(T)