[Bug c++/115722] GCC uses old closure type when using as default argument instead of using new closure type each time
jlame646 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jul 1 07:17:30 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115722
--- Comment #13 from Jason Liam <jlame646 at gmail dot com> ---
(In reply to Andrew Pinski from comment #12)
> Right, and there is only one definition of the lambda in the original
> testcase of the default argument. But it is evulated twice.
Yes, so it should be made clear in the standard that the type of the lambda is
unique only when it is defined and not when the same lambda is evaluated more
than once. Maybe something like *"The type of a lambda-expression (which is
also the type of the closure object) while being defined is a unique, unnamed
non-union class type, called the closure type, whose properties are described
below."* would be more clear.
Note the added "while being defined" in the above modified reference.
More information about the Gcc-bugs
mailing list