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

            Bug ID: 110562
           Summary: GCC does not report the error about lambda contains
                    unexpanded parameter pack
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hewillk at gmail dot com
  Target Milestone: ---

GCC accepts the following invalid code, which is rejected by Clang and MSVC:

template<class... T>
void f() {
  []<T>(){ T x; };
};

int main() {
  f<int, int, int>();
}

https://godbolt.org/z/nreTzPnsK

And if we call this lambda immediately like []<T>(){ T x; }(), gcc's error
message is quite confusing:

<source>:3:14: error: 'T x' has incomplete type
    3 |   []<T>(){ T x; }();
      |              ^

https://godbolt.org/z/vfrKGTsjq

Reply via email to