Re: "for(...;...; ..., (void)++_First)" - в чем замысел (voi
От: watchmaker  
Дата: 08.03.17 20:40
Оценка: 149 (22)
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>
КД>for (; _First != _Last; ++_Dest, (void)++_First)
КД>

КД>Зачем здесь (void)?

Защита от переопределения operator,.
Если этот оператор задан, то запись ++_Dest, ++_First может означать (++Dest).operator,(++_First), то есть делать совсем не то, что было задумано.
А так как оператор запятая не может принимать одним из своих аргументов void, то в конструкции ++_Dest, (void)++_First он никогда не вызовется.
Отредактировано 08.03.2017 20:52 watchmaker . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.