<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)