[Bug libstdc++/39136] std::mem_fun_ref fails to accept a member function whose second argument with default value

paolo dot carlini at oracle dot com gcc-bugzilla@gcc.gnu.org
Mon Feb 9 17:59:00 GMT 2009



------- Comment #9 from paolo dot carlini at oracle dot com  2009-02-09 17:59 -------
(In reply to comment #8)
> At no point was vector<Tp>::resize() ever instantiatable with a 
> non-DefaultConstructible Tp, even with the old size_type-only member 
> function.  It would have failed on value_type() in the definition body.
> That doesn't make it any less conforming, does it?

I do not understand what you are saying: a std::vector strictly following the
current, C++03 specifications, can be explicitly instantiated for a
non-DefaultConstructible Tp. And indeed, this is what happens with current v3,
and was *not* happening back in the 4.0 time.

In C++0x, thanks to Concepts, that will be also true, it will be possible to
explicitly instantiate std::vector for a non-DefaultConstructible Tp and, plus,
it will possible to have 2 separate, optimized, overloads. 

I don't see any other option.


-- 


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



More information about the Gcc-bugs mailing list