Невероятно но факт ...
От: ekh  
Дата: 20.10.08 11:19
Оценка: :)
Есть у меня такой кусок кода:
Непонятно почему вектор 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;
}

Добавлена разметка — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.