"С++ Primer" (5-е издание) предлагает на стр. 149, что короткий код может быть менее подвержен ошибкам, чем более длинная альтернатива. В качестве примера приведена следующая строка кода:
cout << *iter++ << endl;
Он утверждает, что указанная выше строка менее подвержена ошибкам, чем альтернатива:
cout << *iter << endl;
++iter;
Для меня, хотя смысл *iter++
ясен, это выражение по-прежнему требует ненужного умственного усилия для синтаксического анализа, поэтому вторая версия более читаема. Итак, я хочу понять: что более подвержено ошибкам относительно второй версии?