Re[18]: wtf?
От: jyuyjiyuijyu  
Дата: 10.05.11 20:53
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, jyuyjiyuijyu, Вы писали:


V>>>7. Accessing an object designated by a volatile lvalue (3.10), modifying an object, calling a library I/O

V>>>function, or calling a function that does any of those operations are all side effects, which are changes in the
V>>>state of the execution environment.
V>>>[/q]
V>>>В примере было чтение не volatile переменной и что теперь? Как себя компилятор должен повести?
J>>тоесть отличаются побочные эффекты для
J>>&& || и для , ?: которые вляют на порядок вычисления ?
V>А ещё они чем отличаются тоже будешь выискивать? А не проще ли обойти болото, а не лезть в него?
ну а как вам такой код из стандарта
f(a, (t=3, t+2), c) : t == 5
здесь точно такой же случай присваивание а следом чтение
значит все таки есть гарантия ?
отличаются они только тем что тут чтение и изменение
а там просто чтение
Re[19]: wtf?
От: jyuyjiyuijyu  
Дата: 10.05.11 21:00
Оценка:
не мне бы конечно было пофиг но я часто использую этот оператор , (запятая)
поэтому и столько вопросов получается если раньше я его без зазрения совести
использовал то теперь вская муть будет мнится ? поэтому и хотелось бы разобратся
Re[19]: wtf?
От: Masterkent  
Дата: 11.05.11 05:51
Оценка:
jyuyjiyuijyu:

V>>>>7. Accessing an object designated by a volatile lvalue (3.10), modifying an object, calling a library I/O

V>>>>function, or calling a function that does any of those operations are all side effects, which are changes in the
V>>>>state of the execution environment.
V>>>>[/q]
V>>>>В примере было чтение не volatile переменной и что теперь? Как себя компилятор должен повести?
J>>>тоесть отличаются побочные эффекты для
J>>>&& || и для , ?: которые вляют на порядок вычисления ?
V>>А ещё они чем отличаются тоже будешь выискивать? А не проще ли обойти болото, а не лезть в него?
J>ну а как вам такой код из стандарта
J>f(a, (t=3, t+2), c) : t == 5
J>здесь точно такой же случай присваивание а следом чтение
J>значит все таки есть гарантия ?

Для абстрактной машины есть: если t имеет целочисленный тип, то изменение объекта t в t=3 должно быть завершено до чтения t в t+2. Компилятор должен обеспечить такой же видимый результат работы программы, как если бы она выполнялась на абстрактной машине. Бóльших гарантий и не нужно.
Re[20]: wtf?
От: jyuyjiyuijyu  
Дата: 11.05.11 07:04
Оценка:
Здравствуйте, Masterkent, Вы писали:

M>jyuyjiyuijyu:


V>>>>>7. Accessing an object designated by a volatile lvalue (3.10), modifying an object, calling a library I/O

V>>>>>function, or calling a function that does any of those operations are all side effects, which are changes in the
V>>>>>state of the execution environment.
V>>>>>[/q]
V>>>>>В примере было чтение не volatile переменной и что теперь? Как себя компилятор должен повести?
J>>>>тоесть отличаются побочные эффекты для
J>>>>&& || и для , ?: которые вляют на порядок вычисления ?
V>>>А ещё они чем отличаются тоже будешь выискивать? А не проще ли обойти болото, а не лезть в него?
J>>ну а как вам такой код из стандарта
J>>f(a, (t=3, t+2), c) : t == 5
J>>здесь точно такой же случай присваивание а следом чтение
J>>значит все таки есть гарантия ?

M>Для абстрактной машины есть: если t имеет целочисленный тип, то изменение объекта t в t=3 должно быть завершено до чтения t в t+2. Компилятор должен обеспечить такой же видимый результат работы программы, как если бы она выполнялась на абстрактной машине. Бóльших гарантий и не нужно.

ну значит и этот код для абстрактной машины значит тоже что и я думаю
а как она это обеспечит неважно пусть хоть на луну слетает между делом
#define def(c) (__macro<typeof(c)>::_ = c)
#define acc(c) (__macro<typeof(c)>::_)

#define is_digit(x) (def(x),(acc(x) >= '0' && acc(x) <= '9') ? true : false)

по сути это же
((__macro<typeof(c)>::_ = c), (__macro<typeof(c)>::_ <> '$') ? true : false)
ни о каком чтении раньше присваивания и речи быть не можеть же ?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.