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

Reply via email to