Re[4]: С++11: цикл for с двумя инкрементами
От: enji  
Дата: 12.02.15 09:02
Оценка: +3
Здравствуйте, Igore, Вы писали:

Меня всегда интересовало, зачем tuple в нешаблонном коде. Имхо, значительно яснее сделать доп стуктуру

I>Точно так же:

I>
I>struct Test
I>{
I>     int i;
I>};

struct SomeUsefullStruct
{
     int index;
     Test *pointer;
};

std::vector<SomeRealName> vec1;

I>for( auto& it : vec1 )
I>{
    it.pointer->f(it.index);
I>}

I>


Объем тот же (если сравнить с вариантом int index; Test* pointer; std::tie( index, pointer) = it
Работает автокомплит, не надо вспоминать, какой член где лежит.
Если вдруг имена поменяются — будет ошибка компиляции.
Легко найти все использования.

Единственный минус — надо явно объявить структуру и дать нормальные имена.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.