http://llvm.org/bugs/show_bug.cgi?id=20821

Hans Wennborg <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #1 from Hans Wennborg <[email protected]> ---
> It seems like MSVC first invokes SP::operator T*() and then invokes the ctor 
> taking the T* from it, which requires another implicit conversion from D* to 
> B*.  I don't think this is valid C++, but we may want to support it for 
> compat with MSVC.

I'm surprised that they allow that (it seems to compile with the 14 CTP too).
Unless we really can't avoid it, I don't think we should support this.



For smart pointers, I think the common thing to do is to provide templates for
converting copy constructors and assignment operators, something like:

template <typename T> SP {
  ...
  template <typename U> SP(SP<U> other) { ... }
  template <typename U> void operator=(SP<U> other);
}



I'll mark this wontfix for now.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to