Есть у меня такой кусок кода:
Непонятно почему вектор vecInt по ходу виполнения очищается

.
Может подаскажете что ?
struct Item {
Item(int i1, int i2) : i1_(i1), i2_(i2) {}
int i1_;
int i2_;
};
class formatter
{
public:
void operator () (const Item& item) {
vecInt_.push_back(item.i1_ + item.i2_);
}
operator std::vector<int>& ()
{
return vecInt_;
}
private:
std::vector<int> vecInt_;
};
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<Item> vec;
for( int i = 0; i < 1000; i++ )
vec.push_back( Item(i, i+1));
formatter fmt;
std::vector<int> accum = std::for_each(vec.begin(), vec.end(), fmt);
// FUCK here empty vector returned
std::vector<int> accum2 = fmt;
return 0;
}
Добавлена разметка — Кодт