This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/49107] [C++0x][4.7 Regression] incomplete type regression with std::pair
- From: "jason at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 4 Jun 2011 05:55:59 +0000
- Subject: [Bug c++/49107] [C++0x][4.7 Regression] incomplete type regression with std::pair
- Auto-submitted: auto-generated
- References: <bug-49107-4@http.gcc.gnu.org/bugzilla/>
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.