[Prev][Next][Index][Thread]
Did anyone ever write out a/the type system for C++ ?
Although I am sure there are a lot of groans along the way,
it would be a useful service if someone would write out
the type system for C++ as a set of typing rules, subtype
rules, and whatever other hocus pocus is needed to say
what's really going on. Has anyone done this for an
interesting subset of C++?
At the moment, I am particularly interested in how
class B : public A { ... }
does (and does not) cause B to be treated as a subtype of A.
In particular, it appears that B <: A follows for r-values
but not for l-values. This makes sense of course, but the
details of how this is applied in type checking look fairly
tricky. In addition B* <: A*, but not B** <: A**, and other
fun stuff.
John Mitchell