Информация об изменениях

Сообщение Re: "for(...;...; ..., (void)++_First)" - в чем замысел (voi от 08.03.2017 20:40

Изменено 08.03.2017 20:52 watchmaker

Re: "for(...;...; ..., (void)++_First)" - в чем замысел (void)?
Здравствуйте, Коваленко Дмитрий, Вы писали:

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

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

Защита от переопределения operator,.
Если этот оператор задан, то запись ++_Dest, ++_First может означать (++_First).operator,(++Dest), то есть делать совсем не то, что было задумано.
А так как оператор запятая не может принимать одним из своих аргументов void, то в конструкции ++_Dest, (void)++_First он никогда не вызовется.
Re: "for(...;...; ..., (void)++_First)" - в чем замысел (voi
Здравствуйте, Коваленко Дмитрий, Вы писали:

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

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

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