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.