[Bug c++/95368] New: gcc things that a lambda capture is both const and mutable

rafael at espindo dot la gcc-bugzilla@gcc.gnu.org
Wed May 27 15:24:00 GMT 2020


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

            Bug ID: 95368
           Summary: gcc things that a lambda capture is both const and
                    mutable
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rafael at espindo dot la
  Target Milestone: ---

gcc accepts

#include <utility>

struct foo {
    void func();
};

void bar(foo& v) {
    [v]() {
        static_assert(std::is_same_v<decltype(v), foo&>);
        [v]() mutable {
            static_assert(std::is_same_v<decltype(v), foo&>);
//            v.func();                                                         
        }();
    }();
}


But uncomment the call and you get

test.cc:12:20: error: passing ‘const foo’ as ‘this’ argument discards
qualifiers [-fpermissive]
   12 |             v.func();


More information about the Gcc-bugs mailing list