Size: a a a

2020 July 22

s

std::slavik in supapro.cxx
код вообще говоря пишут не для машины, а для людей
источник

s

std::slavik in supapro.cxx
это способ общения программистов между собой в том числе, если можешь скобками отсечь личшние вопросы которые могут возникнуть и сэкономить тому кто это будет читать несколько секунд/минут - не вижу причин этого не сделать
источник

D

Dmitriy in supapro.cxx
std::slavik
ну вон выше говорят что регламентирован - если подкрепят ссылкой на стандарт - вообще отлично будет)
5.14/5.15 вроде, я не помню, сейчас посмотрю
источник

s

std::slavik in supapro.cxx
Dmitriy
5.14/5.15 вроде, я не помню, сейчас посмотрю
у меня сомнения больше по поводу оптимизации
источник

s

std::slavik in supapro.cxx
оптимизатор может и выбрасывать вообще условия если, например оно всегда ложно
источник

D

Dmitriy in supapro.cxx
std::slavik
оптимизатор может и выбрасывать вообще условия если, например оно всегда ложно
А это что-то меняет?
источник

s

std::slavik in supapro.cxx
Dmitriy
А это что-то меняет?
ну, например, во втором случае - если одно из условий всегда ложно - можно выбросить просто весь блок легко
источник

s

std::slavik in supapro.cxx
а в первом - нужно еще проверить - не входит ли в блок 1, допустим какой то код
источник

s

std::slavik in supapro.cxx
и можем ли мы выбросить внешний блок
источник

D

Dmitriy in supapro.cxx
std::slavik
а в первом - нужно еще проверить - не входит ли в блок 1, допустим какой то код
Мне кажется, компилятор обязан проверить такое. Слишком явное упущение было бы
источник

D

Dmitriy in supapro.cxx
Но в Стандарте не найду, увы
источник

D

Dmitriy in supapro.cxx
std::slavik
а в первом - нужно еще проверить - не входит ли в блок 1, допустим какой то код
И да, эти два условных выражения будут неравноценны
источник

ВБ

Владимир Боярских... in supapro.cxx
Quixiote
Скажите пожалуйста, равносильны ли такие две конструкции?
if( cond1){
  if(cond 2){
     ...
  }
}
и
if( cond1 && cond2){
  ...
}
Я правильно понимаю, что во втором примере, если cond1 не выполнено, то cond2 не будет проверяться в принципе?
Я могу ошибаться, но кажется вот так правильно...
if (!cond1 || !cond2) return;
...
источник

s

std::slavik in supapro.cxx
я к тому что если бы я разрабатывал оптимизатор - то когда все в одних скобках - это изи оптимизация
источник

s

std::slavik in supapro.cxx
а когда вложенные блоки - это надо проверять дополнительно - нет ли там еще чего
более сложная логика
источник

DP

Denis Paukaev in supapro.cxx
std::slavik
а когда вложенные блоки - это надо проверять дополнительно - нет ли там еще чего
более сложная логика
Если первое условие ложно то выкинут весь блок
источник

DP

Denis Paukaev in supapro.cxx
Не вижу разницы тут
источник

s

std::slavik in supapro.cxx
Denis Paukaev
Если первое условие ложно то выкинут весь блок
а если второе ложно
источник

s

std::slavik in supapro.cxx
во втором случае - разницы никакой
источник

s

std::slavik in supapro.cxx
блок один
источник