C++0x, лямбда в лямбде. Доступа ко внешней переменной.
От: shestero  
Дата: 01.07.11 09:40
Оценка:
                    std::for_each( // цикл 1
                        mapmapK2.begin(), 
                        mapmapK2.end(),
                        [&](const std::pair<CString, std::map<CString, std::pair<float, float> > >& m) mutable
                        {
                            mapDatas[m.first].vecValues.resize( good_coreid.size() );

                            int K=0;
                            std::for_each( // цикл 2
                                good_coreid.begin(),
                                good_coreid.end(),
                                [&](const CString& CoreID) mutable
                                {
                                    mapDatas[m.first].vecValues[K] = m.second.at(CoreID).second;  // ! тут (mapDatas)
                                    K++;
                                }
                            );
                        }    
                    );


VS2010 подсвечивает как ошибку ("Error: invalid reference to an outer-scope local variable in lambda-body", но компилирует.
Бажек?
Или что не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.