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

            Bug ID: 91806
           Summary: error: expansion pattern ‘<lambda>()’ contains no
                    parameter packs
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: unixod at gmail dot com
  Target Milestone: ---

Hi,

The following code:

template<typename... T>
void foo()
{
    std::vector<std::size_t> {
        []() {
            using U = T;
            return sizeof(U); // If replace U with T then code compiles.
        }()...
    };
}

triggers a compilation error:

    error: expansion pattern ‘<lambda>()’ contains no parameter packs

The aforementioned example is synthetic, in the real code where I encountered
this problem, the fix had required to move a lambda to a separate function.

The nature of this bug seems very similar to those posted in Bug 86859 and Bug
87001, but I'm unsure.

Reply via email to