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
