
Howard, I believe there are a number of issues with the approach you're using: The trivial case is that if From is not default constructible then you're code won't compile. More seriously there are some types which is_convertible currently works with that *can never be rvalues*, examples include function types and abstract classes: the latter in particular was the subject of several bug reports until we "fixed" it with the current implementation. Basically I think we're kind of painted into a corner here implementation wise :-( Also the example you give is is_convertible<Movable, Movable>, is this the real use case? I ask because any is_convertible<T, T> expression is basically useless in C++03: it wil either compile and return true, or not compile at all, so you may just as well replace the expression with "true" and let the code fail later if the type is not copyable/movable :-( So yes, I would *love* to fix this, I just don't see how at present... John.