LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

классический пример уже неоправданно многословен. Зачем писать «if (x) … if (! x) …», когда можно просто «if (x) … else …»

Потому что там в первом if (!x) иксу присваивается значение. Второй if проверяет что значение таки присвоилось (fetchFromServer может вернуть пустой optional).

И если забыть про второй if, то можем получить UB при дереференсе пустого optional’а.

Исходная версия red75prim, :

классический пример уже неоправданно многословен. Зачем писать «if (x) … if (! x) …», когда можно просто «if (x) … else …»

Потому что там в первом if (!x) иксу присваивается значение. Второй if проверяет что значение таки присвоилось (fetchFromServer может вернуть пустой optional).