Why does for_each + lambda trigger -Waggregate-return warning?
===

When trying the following example with gcc and the "-Waggregate-return" flag the warning: "function call has aggregate value" triggers:

    struct Element {
    // ... stuff ...
    }

    Container<Element> elements(10);
    for_each(begin(elements),end(elements),[](Element& e){
     
    // ... modify elements ...

    });

The -Waggregate-return flag "Warns if any functions that return structures or unions are defined or called", because, if I understood correctly, you could potentially overflow the stack by returning a large enough object. 

However, for_each returns the type of the lambda, which is void. Why does it trigger the warning? What have I missed?