|
ru.algorithms
- RU.ALGORITHMS ----------------------------------------------------------------
From : Mike Murov 2:5030/976.55 02 Oct 2002 16:07:27
To : Serge Nozhenko
Subject : <none>
--------------------------------------------------------------------------------
Сpд Окт 02 2002 00:42, я пишу:
SN> 01 Oct 02 19:58, Andrey Tarasevich wrote to Serge Nozhenko:
>>> AT> Итак, _вычислением_ выражения 'a ^= b' в C/C++ называется
>>> AT> процесс вычисления значения 'a ^ b'. Hи больше, ни меньше.
>>> AT> Величина 'a ^ b' называется _результатом_ выражения 'a ^= b'.
>>> AT> Все. Больше ничего в _результат_ выражения 'a ^= b' не
>>> AT> входит.
>>>
>>> [...дальнейшие рассуждения поскипаны...]
<skip here appear>
Уважаемые господа!
К сожалению не имею времени работать с оригинальным C++ стандартом и пользуюсь
выжимками от Microsoft (MSDN, April 2000). Так вот, по исследуемому вопросу там
сказано следующее:
Assignment Operators: =, +=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=
An assignment operation assigns the value of the right-hand operand to the
storage location named by the left-hand operand. Therefore, the left-hand
operand of an assignment operation must be a modifiable l-value. After the
assignment, an assignment expression has the value of the left operand but is
not an l-value. The assignment-operator is one of the following:
<skipped>
Так вот, насколько я понимаю <start> assign the value <skip> to the storage
location named <end> довольно явно указывает на принудительную прямую
модификацию памяти, которая же будет являтся и значением выражения. Причем для
всей группы операторов присвоение является не каким-то доп.эффектом, а самым что
ни на есть основным.
А теперь рассуждения
a^=b == a=(a^b) - если принять данную запись за верную (ессно чисто
логически, т.к.напр. для классов '^=' совершенно отдельный переопределяемый
оператор)
a^=b^=a^=b == a=(a^(b=(b^(a=(a^b))))) (Z)
т.к. во всем вычислении идет прямое изменение памяти, то _не_ может быть
изменения порядка раскрытия скобок (по представленному выше из MSDN).
P.S.относительно проблемы считаю, что со скобками a^=(b^=(a^=b)) все должно быть
в ажуре на любом компиляторе, а вот без скобок...
P.P.S.видно у Билли тоже споры возникали подобные этому, т.к. писать "storage
location named" вместо variable так просто не станут :)
P.P.P.S.если будете опровергать мою (.) зрения, пожалуйста опровергните для
начала ее для правой части выражения (Z).
Еще увидимся, Serge.
--- GoldED/W32 3.0.1
* Origin: Kill. Ем All. (2:5030/976.55)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
| Тема: |
Автор: |
Дата: |
|
<none> |
stan72 |
21 Sep 2002 20:01:31 |
Re: <none> |
Sergei Paschenko |
23 Sep 2002 17:26:11 |
<none> |
Dmitry Pyzhov |
24 Sep 2002 01:07:14 |
 Re: <none> |
Andrey Tarasevich |
25 Sep 2002 11:00:54 |
  <none> |
Dmitry Pyzhov |
26 Sep 2002 11:28:38 |
  Re: <none> |
Andrey Tarasevich |
27 Sep 2002 10:56:36 |
  <none> |
Vitaly Mayatskih |
27 Sep 2002 17:40:43 |
   <none> |
Andrey Tarasevich |
28 Sep 2002 01:34:37 |
  Re: <none> |
Anatoly Svishev |
28 Sep 2002 00:33:11 |
   Re: <none> |
Andrey Tarasevich |
28 Sep 2002 02:29:40 |
   <none> |
Aleksey Loginov |
28 Sep 2002 11:09:12 |
   Re: <none> |
Vladislav Gusev |
28 Sep 2002 12:30:15 |
   Re: <none> |
Pavel P |
29 Sep 2002 10:27:02 |
    <none> |
Vitaly Mayatskih |
29 Sep 2002 14:17:20 |
    Re: <none> |
Andrey Tarasevich |
29 Sep 2002 23:29:43 |
     Re: <none> |
Anatoly Svishev |
30 Sep 2002 03:07:53 |
      Re: <none> |
Andrey Tarasevich |
30 Sep 2002 08:36:27 |
      <none> |
Ianos Gnatiuc |
30 Sep 2002 22:54:13 |
      <none> |
Aleksey Loginov |
01 Oct 2002 08:52:46 |
       <none> |
Ianos Gnatiuc |
02 Oct 2002 10:59:01 |
        <none> |
Aleksey Loginov |
03 Oct 2002 06:50:24 |
        Re: <none> |
Andrey Tarasevich |
03 Oct 2002 07:40:22 |
      Re: <none> |
Vladislav Gusev |
01 Oct 2002 16:36:43 |
      <none> |
Nickolas Hirgij |
01 Oct 2002 22:50:02 |
    Re: <none> |
Pavel P |
30 Sep 2002 06:22:38 |
  <none> |
Max Alekseyev |
29 Sep 2002 22:46:08 |
  Re: <none> |
Andrey Tarasevich |
30 Sep 2002 11:48:20 |
   <none> |
Max Alekseyev |
30 Sep 2002 13:06:54 |
    <none> |
Andrey Tarasevich |
01 Oct 2002 06:21:35 |
    <none> |
Serge Nozhenko |
01 Oct 2002 15:08:24 |
    Re: <none> |
Andrey Tarasevich |
01 Oct 2002 19:58:24 |
    Re: <none> |
Andrey Tarasevich |
01 Oct 2002 21:34:18 |
    <none> |
Serge Nozhenko |
02 Oct 2002 00:42:48 |
    <none> |
Andrey Tarasevich |
02 Oct 2002 03:44:12 |
    <none> |
Mike Murov |
02 Oct 2002 16:07:27 |
    Re: <none> |
Stanislav Yaroshenko |
03 Oct 2002 01:33:40 |
    <none> |
Andrey Tarasevich |
03 Oct 2002 03:01:09 |
    <none> |
Andrey Tarasevich |
03 Oct 2002 03:49:50 |
  Re: <none> |
Vladimir A. Pertzel |
30 Sep 2002 15:28:40 |
  <none> |
Ianos Gnatiuc |
30 Sep 2002 23:02:32 |
<none> |
Georgy Plechanov |
23 Sep 2002 17:05:12 |
<none> |
Igor Bychkov |
24 Sep 2002 21:54:28 |
<none> |
Nickolas Hirgij |
24 Sep 2002 08:41:05 |
<none> |
Ianos Gnatiuc |
30 Sep 2002 00:50:35 |
 <none> |
Stanislav Shwartsman |
30 Sep 2002 09:06:00 |
  <none> |
Ianos Gnatiuc |
30 Sep 2002 22:16:12 |
  Re: <none> |
Vladislav Gusev |
01 Oct 2002 16:12:30 |
   <none> |
Comoderator Of Ru Algorithms |
02 Oct 2002 21:09:00 |
   <none> |
Ianos Gnatiuc |
02 Oct 2002 12:02:13 |
   Re: <none> |
Vladislav Gusev |
03 Oct 2002 19:25:24 |
  <none> |
Nickolas Hirgij |
01 Oct 2002 20:38:42 |
 Re: <none> |
Vladislav Gusev |
30 Sep 2002 13:25:00 |
  <none> |
Ianos Gnatiuc |
30 Sep 2002 22:34:18 |
   Re: <none> |
Vladislav Gusev |
01 Oct 2002 16:36:11 |
   <none> |
Stanislav Shwartsman |
01 Oct 2002 22:35:23 |
   Re: <none> |
Vladislav Gusev |
02 Oct 2002 13:14:46 |
   <none> |
Stanislav Shwartsman |
02 Oct 2002 16:51:45 |
   Re: <none> |
Vladislav Gusev |
03 Oct 2002 18:51:00 |
 <none> |
Dmitry Pyzhov |
01 Oct 2002 01:26:34 |
  <none> |
Ianos Gnatiuc |
01 Oct 2002 08:01:13 |
 <none> |
Nickolas Hirgij |
01 Oct 2002 20:32:05 |
 <none> |
Kirill Frolov |
03 Oct 2002 23:45:50 |
 <none> |
Igor Dolgov |
04 Oct 2002 00:00:18 |
|
|