<none>

From
Serge Nozhenko (2:5020/175.1)
To
Andrey Tarasevich
Date
2002-10-02T00:42:48Z
Area
RU.ALGORITHMS
01 Oct 02 19:58, Andrey Tarasevich wrote to Serge Nozhenko:

 >>  AT> Итак, _вычислением_ выражения 'a ^= b' в C/C++ называется процесс
 >>  AT> вычисления значения 'a ^ b'. Ни больше, ни меньше. Величина 'a ^ b'
 >>  AT> называется _результатом_ выражения 'a ^= b'. Все. Больше ничего в
 >>  AT> _результат_ выражения 'a ^= b' не входит.
 >>
 >> [...дальнейшие рассуждения поскипаны...]
 >>
 >> (5.17.1): ...The result of an assigment expression is the value stored
 >> in the left operand _after the assigment has taken place_...   Читать
 >> медленно. ;-) ...

 AT> Я уже читал. И медленно, и быстро :) Читать недостаточно, надо еще
 AT> _понимать_, что именно хотели сказать этим текстом. Частично переведу на
 AT> русский наиболее близко к смыслу: "Результатом assignment expression
 AT> является значение, которое сохранится в левом операнде после выполнения
 AT> присваивания". Надеюсь, теперь понятно,

  Не, не понятно. Я вижу perfect time, но в упор не вижу future, которое могло бы дать в переводе "сохранится". Перевод на самом деле звучит так (несколько не литературно, зато буквально): "Результат assignment expression - это значение, сохраненное (вар.: хранящееся) в левом операнде после того, как имело место присваивание."

  BTW, возможная неоднозначность в порядке произведения сторонних эффектов (как, например в случае инкремента с последующим присваиванием в тот же операнд) относится только к скалярным типам. Стоит обернуть скалярный тип в класс, - и все начинает определяться исключительно синтаксическим порядком операций. Надеюсь, не надо объяснять, почему.

 Serge

P.S. Ясное дело, это все в C++.

--- Golded 2.41+
 * Origin: Moccoletto (2:5020/175.1)