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)

Reply via email to