for ( auto x: arr_off_struct ) {} -- как все криво.
От: kd112  
Дата: 14.04.15 15:30
Оценка: -6 :))) :)
"Осваиваю" тут нововведение с11++, и захотелось высказаться .

Итак мы имеем теперь крутую хрень :


struct sss
{
  DWORD i1;
  QWORD i2;
  char Name[222];
};

vector <sss> my_arr_of_structs;

for ( auto item: my_arr_of_structs ){
   item.i1 = 0;
   item.i2 = 3;
   memcpy(item.Name,"222",222); // не суть тут пример
}


Красиво. Да. Удобно? Да. ... Вроде бы.....
Вроде бы да — Но вот только это auto item, это "копия" элемента. И что бы добраться до производительности и красоты простого for

for ( size_t i=0; i<my_arr_of_structs.size(); i++){
  my_arr_of_structs[i].i1 =0;
  ...
}


еше очень далеко.

Спрашивается а в чем прикол заставлять делать криво. Что не ужели нельзя было сделать так что бы если тебе надо копию элемента массива то нужно было что-то сделать, а не наоборот?

То есть логика моего "возмущения" такая : Для чего for по массиву? Для того чтобы перебрать элементы и что-то с ними сделать. Но не для того чтобы копировать элемент ( он может быть и 100 кил ) и на него посмотреть.

==
Почему возмущение — ? Да кода написал много, точнее переделал из обычных for на вот эти auto.
Ж)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.