[Bug c++/49107] [C++0x][4.7 Regression] incomplete type regression with std::pair

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Jun 4 05:56:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49107

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #8 from Jason Merrill <jason at gcc dot gnu.org> 2011-06-04 05:55:15 UTC ---
This is not an arg-dependent lookup issue.  Here, instantiating
std::pair<VectorH3<Kernel>> involves evaluating
noexcept(ploum<VectorH3<Kernel>>::value), which means evaluating decltype(::new
VectorH3<Kernel>(declval<VectorH3<Kernel>>())), so invoking a VectorH3
constructor, so considering all the possible constructors, in particular
VectorH3(const Line_3&).  To evaluate how good that match is, we need to
instantiate Line_3, which fails as you see.

The resolution of core 1092 might make this work, though.  It isn't reflected
in the issues list, but the discussion in Madrid suggested that we should
always ignore constructors taking non-related types when trying to copy an
object of the same type.



More information about the Gcc-bugs mailing list