RootCauseunvalidated
It seems the `forward()` always do a `move`. — for(auto &&data : rhs) { lhs.push_back(std::forward(data)); }. Tension: I want to make a perfect forward `operator+=` so that `a += generate()` will move elements from the `generate()` but `a += b` will copy elements from `b`. Outcome: `auto && data` is deduced as `Data & data`;.
f3e75425-73d2-461b-b4be-4bf550b11bf8
It seems the forward() always do a move. — for(auto &&data : rhs)
{
lhs.push_back(std::forward(data));
}. Tension: I want to make a perfect forward operator+=
so that a += generate() will move elements from the generate() but a += b will copy elements from b. Outcome: auto && data is deduced as Data & data;.