>> специально когда Infinity08: написал что гарантия необходима в реальной системе (если я понял).
Не, я не намеревался что гарантия не необходима. Я сказал в ответ на столб обстановки было что я предпочитаю общаться с условиями ошибки по-разному чем его подходом.
2 подхода здесь (я добавлял мои собственные личные мысли слишком):
(a) Попытайтесь написать оператору назначения для того чтобы выйти предмет в действительное положение для каждого по возможности сценария. Это основно невозможно, или весьма крепко по крайней мере. Будут слишком много перемеююых задействованные, и слишком много по возможности сценария ошибки. Additionaly, этот вид подхода добавляет ограничения к Кодий может сделать, которое не желательно в много случаев.
(b) Избегите добавленной сложности приходит с ранее подходом, и вместо отложите ответственность к вызывая Кодему. Механизм исключений совершенно одет для того. Furthermore, будет обычно вызывая Кодим которое знает самое лучшее как общаться с ошибкой (тем путем пытаться зафиксировать его, проигнорировать его, потерпеть неудачу грациозно, etc.), так, что будет другая причина предпочитать этот подход.
Второй подход я рекомендую в вообще случай, потому что он гибке, и легко для того чтобы снабдить, и после того как я деланы правильн, вы не теряете что-нибыдь относительно безопасности Кодего.
Первый подход полезн в некоторых конкретных случаях, но вы быстро получите похороненными в сложностях если вы пытаетесь использовать его везде heh.
>> Моя воодушевленность для делать этот столб
Будет славной статьей, и она деиствительно покрывает много из опасностей с операторами назначения.
>> Iий и интересовало будет правильным ответом для того.
Вы заметите что статья начинает с одной из правильно дорог причалить оператору назначения. Единственная разница с Кодим, котор я вывесил более раньше, что их оператор назначения правильн очищает вверх после себя в случае если распределение памяти терпит неудачу.
То хорошо, но вс обязательно. Ликвидатор типов конструирован для того чтобы очистить вверх предмет, поэтому я предпочитаю выйти та ответственность там, вместо распространять ее вне на всем методы типов.
К концу статьи, по-разному подходы обсужены слишком.
Идущ над моим более предыдущим Кодим снова, я запятнал одну ошибку однако. «Delete b1_; » линия должна быть последована за «b1_ = 0; » линия (подобно для b2_). Кажусь я печатал heh на машинке бита слишком быстрое. Так, оно становит: