Здравствуйте, 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
Работает автокомплит, не надо вспоминать, какой член где лежит.
Если вдруг имена поменяются — будет ошибка компиляции.
Легко найти все использования.
Единственный минус — надо явно объявить структуру и дать нормальные имена.