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