
AMDG Howard Hinnant wrote:
The first como failure (unique.ptr\unique.ptr.runtime\unique.ptr.runtime.ctor\default02.pass.cpp) looks like a test bug. B<D>::B() should be outlined next to ~B() instead of inlined.
Confirmed. I made the change and it passes now.
I started going through the rest of the como failures and they all look like a failure in detail::is_convertible. My best guess is that this version of como hasn't implemented CWG issue 291 (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#291), which is understandable considering this issue is C++0X targeted, not C++03 targeted (accepted Oct. 05). <sigh> is_convertible is a tricky area and apparently my implementation is depending on a dark corner that won't be official until C++0X. I do not know if changing "test1" to "test2" on line 50 of unique_ptr.hpp would help or not. It doesn't help on g++. It might help on Como. This is a dark corner of the language <shrug>. If it doesn't help, I don't have a backup plan.
It doesn't help.
In this case it would appear that there is no C++03 technique for implementing is_convertible for move-only types (that I'm aware of). And if that is the case, a C++03 emulation of move seems very much in jeopardy. A working is_convertible is the foundation upon which this move emulation is built.
In Christ, Steven Watanabe