> Actually, there is another advantage, which (I think) is at least as > important as the ones you cite. Namely, it is possible to define a built > in operator such that is_convertible<Y,X> returns false for > > class X{}; > class Y : X {}; > > and ambiguous conversion cases that (as far as I can tell) cannot be > implemented in pure C++ (or even with any existing extension of which I am > aware). That means there's no reason for any ill-formed is_convertible > expressions, other than those involving incomplete types. That seems a > good enough reason by itself to reject the template in favor of a built in > operator. > > Put another way, the whole point of is_convertible (as I understand it) is > to test a certain property of two types (or a type and an expression, if > you like). In order to perform the test, it should not be necessary to > know whether or not the types or expressions in question satisfy some other > untestible properties.
The problem is that the question "is A convertible to B" has four answers: yes, no, ill-formed, and ambiguous :-( John. > Any code using the existing template could easily be converted to use a > built in operator. We gain (at least) three distinct and compelling > advantages, and it appears as though we loose nothing. Apart from getting > it standardized, what's the problem? _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost