А потом в C ++ условно - PullRequest
12 голосов
/ 16 мая 2019

Ада имеет замечательную особенность оператора and then, используемого в условии if в дополнение к логическому оператору and . Это позволяет проверить, например, не является ли объект нулевым, перед тем как получить к нему доступ, например:

if Object /= null and then Object.Value > 5 then
   -- do something with the value
end if;

Есть ли способ выразить подобное поведение в C ++ без использования вложенного if?

1 Ответ

17 голосов
/ 16 мая 2019

Ну, Object не может быть NULL в C ++ в вашем коде, так как он, кажется, не является указателем.Если бы это был указатель, вы могли бы сказать:

 if (Object && Object->Value > 5 ) {
       // do something
 }

В C ++ оператор && выполняет «оценку с коротким замыканием» - оценка останавливается, если самый левый операнд оценивается как ложный.

...