http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59070
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |RESOLVED
Resolution|--- |WORKSFORME
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This is a valid testcase:
#include <iostream>
#include <vector>
#include <string>
struct VecPrinter {
const std::vector<std::string>& v;
};
std::ostream& operator<<(std::ostream& out, VecPrinter vp)
{
for (auto& i : vp.v)
out << i << ' ';
return out;
}
int main()
{
std::vector<std::string> items {"default"};
auto add = [=](std::string item) mutable
{ items.push_back(item); return items; };
std::cout << VecPrinter{ add("one") } << std::endl;
std::cout << VecPrinter{ add("two") } << std::endl;
std::cout << VecPrinter{ add("three") } << std::endl;
}
And it works perfectly with
gcc version 4.8.3 20131029 (prerelease) (GCC)
gcc version 4.9.0 20131002 (experimental) (GCC)