https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92787

            Bug ID: 92787
           Summary: P0634R3 is not implemented correctly if
                    parameter-declaration appears in a default argument
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: boostcpp at gmail dot com
  Target Milestone: ---

The lambda expression's parameter-declaration don't assume a qualified-id to
name a type if that parameter-declaration appears in a default argument.

> parameter-declaration in a lambda-declarator, unless that 
> parameter-declaration appears in a default argument, or
parameter-declaration of a (non-type) template-parameter.

template < typename T >
// lambda expression's parameter-declaration appears in a default argument
void f( typename T::type x = []( T::type x ){return x ;}( typename T::type{}) 
)
{
}

https://wandbox.org/permlink/7d2d6aqjZWOhL5Pq

But current GCC 10 head assume it to name a type.

Or am I reading the wording wrong?

Reply via email to