[Bug c++/62241] New: C++14 generalized lambda capture doesn't work with uniform initialization syntax.

0xd34df00d at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Aug 23 18:42:00 GMT 2014


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

            Bug ID: 62241
           Summary: C++14 generalized lambda capture doesn't work with
                    uniform initialization syntax.
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: 0xd34df00d at gmail dot com

Created attachment 33386
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33386&action=edit
Failing code

Passing a lambda copying a value in its capture clause in a braced-init-list
causes the compiler to issue `error: 'foo' was not declared in this scope`,
where `foo` is the name of the copy.

Important part is the error only happens if using the uniform initialization
syntax. If the lambda is passed to a class ctor invoked via the standard '()'
syntax, everything works fine.

This is reproducible on 4.9.0 and 4.9.1 for me. I haven't had a chance to test
4.9.2 though.



More information about the Gcc-bugs mailing list