
Thorsten Ottosen wrote:
The rule seems complicated. :-( This is because it requires two user-defined conversions? generic_ptr_list -> operator auto_ptr() -> operator auto_ptr_ref() -> auto_ptr
In the case of lvalue: generic_ptr_list -> operator auto_ptr&() -> auto_ptr
I hope a lawyer will look into this posting. :-)
ME to.
It's no secret that some compilers had problems with it, but if IIRC, comeau could do it.
I tried to compile this: #include <memory> // auto_ptr struct List { template< class X > operator std::auto_ptr<X>() const; }; int main() { std::auto_ptr<int> a = List(); } msvc7.1, msvc8, gcc3.4, gcc4.1 and comeau-online all fails to compile. Regards, -- Shunsuke Sogame