From: "Gennaro Prota" <[EMAIL PROTECTED]> > On Thu, 30 Jan 2003 10:19:53 -0500, David Abrahams > <[EMAIL PROTECTED]> wrote: > > >Peter D. has effectively argued in the past that void *is* a supertype > >of everything (well, every object type, as opposed e.g. to > >function/function pointer types). Given the foregoing discussion > >about squares and rectangles it may be the *only* supertype that we > >can detect with certainty. > > And since Peter D. is not in the habit of making trivial errors, this > makes me wonder in fact what definition of "supertype" he was > considering.
The practical one. I.e. if you use is_base_and_derived<B, D> somewhere, do you want "true" for B=void, if B can be void? For example, if you write a class template X<T> that is supposed to only operate on types derived from T (e.g. an inheritance-bounded variant), how would you denote the unbounded case? A related question would be: if you had common_base<X, Y>::type, what would you want returned when X and Y have no common base? _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost