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

            Bug ID: 83406
           Summary: GCC8 can't deduce lambda return type
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ostash at ostash dot kiev.ua
  Target Milestone: ---

Following code:

-----
class Foo{};

class Bar
{
public:
  const Foo& getFoo() const;
  Foo& getFoo();
};

auto getter = [](const Bar& bar) -> decltype(auto) { return bar.getFoo(); };
-----

is reject with GCC8 trunk with:
error: inconsistent types 'Foo' and 'const Foo&' deduced for lambda return type
 auto getter = [](const Bar& bar) -> decltype(auto) { return bar.getFoo(); };
                                                                           ^

GCC6, GCC7 and Clang are ok with it in both C++14/C++17 modes.

Reply via email to