This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/51013] complex::{imag,real}() should maintain lvalue-returning extension in C++11
- From: "marc.glisse at normalesup dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 07 Nov 2011 23:42:46 +0000
- Subject: [Bug libstdc++/51013] complex::{imag,real}() should maintain lvalue-returning extension in C++11
- Auto-submitted: auto-generated
- References: <bug-51013-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51013
Marc Glisse <marc.glisse at normalesup dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marc.glisse at normalesup
| |dot org
--- Comment #2 from Marc Glisse <marc.glisse at normalesup dot org> 2011-11-07 23:42:46 UTC ---
(In reply to comment #1)
> I did *not* *remove* anything, simply, for C++11, real() and imag() are exactly
> *per the letter* of the Standard, that is (similarly for the specializations):
>
> constexpr _Tp
> real() const { return _M_real; }
Isn't the const redundant here?
Actually, I only see constexpr for the specializations in the standard, not for
the general case, am I looking at the wrong place?
> constexpr _Tp
> imag() const { return _M_imag; }
>
> and I don't see why we should do something different. But, if Gaby thinks,
> everything considered, that we want something different, I'm not going to
> object to patches to that effect (from a technical point of view, note the
> functions are now constexpr, thus you can't simply have two overloads anymore)
Why can't you still have these overloads?
constexpr _Tp real(); // const
_Tp&real();
Note that I am not taking position on whether it should be added, I am just
confused by the technical reasons.