Что не так с «проверкой самоназначения -» и что это значит?

В книге Херба Саттера Exceptional C++ (1999), у него есть слова в решении пункта 10:

"Exception-unsafe" and "poor design" go hand in hand. If a piece of code isn't exception-safe, that's generally okay and can simply be fixed. But if a piece of code cannot be made exception-safe because of its underlying design, that almost always is a signal of its poor design.

Example 1: A function with two different responsibilities is difficult to make exception-safe.

Example 2: A copy assignment operator that is written in such a way that it must check for self-assignment is probably not strongly exception-safe either

Что он подразумевает под термином «проверка самоназначения -»?

[ЗАПРОС]

Dave и AndreyT показывают нам, что именно означает "проверить самоназначение -". Это хорошо. Но вопрос не исчерпан. Почему «проверка собственного -назначения» вредит «безопасности исключений» (согласно Хёрбу Саттеру )? Если вызывающая сторона пытается выполнить самоназначение -, эта «проверка» работает так, как будто никакого присвоения не происходит. Это действительно больно?

[MEMO 1] В пункте 38 Идентификация объекта позже в книге Херба он объясняет -самоназначение.

28
задан Jimm Chen 18 August 2012 в 14:53
поделиться