Hello, All!
Скажите, пожалуйста, а зачем нужны такие складности при реализации auto_ptr::release:
_Ty *release() const _THROW0()
{((auto_ptr<_Ty> *)this)->_Owns = false; file://(1)
return (_Ptr); }
почему вместо строчки (1) нельзя прямо написать?:
_Owns = false;
With best regards, Roman Panas
Posted via RSDN NNTP Server 1.6
Здравствуйте, promko, Вы писали:
P>Hello, All!
P>Скажите, пожалуйста, а зачем нужны такие складности при реализации auto_ptr::release:
P>P>_Ty *release() const _THROW0()
P>{((auto_ptr<_Ty> *)this)->_Owns = false; file://(1)
P>return (_Ptr); }
P>
P>почему вместо строчки (1) нельзя прямо написать?:
P>P>_Owns = false;
P>
P>With best regards, Roman Panas
Для того чтобы с this снять const
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, promko, Вы писали:
P>Скажите, пожалуйста, а зачем нужны такие складности при реализации auto_ptr::release:
P>_Ty *release() const _THROW0()
P>{((auto_ptr<_Ty> *)this)->_Owns = false; file://(1)
P>return (_Ptr); }
Похоже, надо снять const с this
Здравствуйте, promko, Вы писали:
P>Здравствуйте, Yacha, Вы писали:
Y>>Для того чтобы с this снять const
P>теперь понятно
P>но возник новый вопрос:
P>а почему const_cast не заюзать вместо явного приведение типов?
По причине того, что версия STL в VC6 не менялась примерно начиная с VC4.
Microsoft наверно не захотел исправлять STL.
... << RSDN@Home 1.0 beta 6a >>