
gpd wrote:
I do not think we want to consciously introduce these kind of bugs in a boost library.
Let's not jump to conclusions before we've thought this through. You are saying that the compiler might assume that a pointer to an object of type A can't possibly be an alias for a pointer of type B, which *inherits* from type A because A and B are different types? That just doesn't make any sense. Obviously A could be an alias for an object of type B, even if the standard says that an object of type A might not be encapsulated within an object of type B and therefore cast from A to B might produce undefined behavior, it doesn't mean that the compiler would ever misconstrue that the mean there is no legitimate circumstance in which a developer would cast an object of type A to B, or B to A, because that is expressly the purpose of subtyping and static_cast. It wouldn't just break non-standard compliant code; it would break all code. Therefore, it is safe to assume that what I'm doing, which currently works, will continue to work in the future. Luke