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

Сообщение Re[11]: Почему в этом коде течет память от 15.06.2017 0:20

Изменено 15.06.2017 0:26 jazzer

Re[11]: Почему в этом коде течет память
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, dead0k, Вы писали:


C>>>Про то, что их нет в последних стандартах я и так знаю, ограничимся C++03 для простоты.

D>>sequence point-ы регулируют сайд-еффекты, а не вычисления.
C>А разница в чём в данном случае? Бросок исключения — это сторонний эффект. Т.е. между new и shared_ptr::ctor его быть не может.

Вот это ты с чего взял?
Точка следования (пересчитай определение) лишь означает, что все эффекты от new должны сработать до того, как начнутся эффекты от ctor. Всё.
Очевидно, вставка между ними эффектов от f() этого свойства не изменяет.
Re[11]: Почему в этом коде течет память
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, dead0k, Вы писали:


C>>>Про то, что их нет в последних стандартах я и так знаю, ограничимся C++03 для простоты.

D>>sequence point-ы регулируют сайд-еффекты, а не вычисления.
C>А разница в чём в данном случае? Бросок исключения — это сторонний эффект. Т.е. между new и shared_ptr::ctor его быть не может.

Вот это ты с чего взял?
Точка следования (перечитай определение) лишь означает, что все эффекты от new должны сработать до того, как начнутся эффекты от ctor. Всё.
Очевидно, вставка между ними эффектов от f() этого свойства не изменяет.