Здравствуйте, igna, Вы писали:
I>Еще одно применение if (false):
I>
I> if (false)
I> ;
I>#ifdef MACRO
I> else if (cond1)
I> expr1;
I> else if (cond2)
I> expr2;
I>#endif
I> else if (cond3)
I> expr3;
I> else
I> expr4;
I>
I>Без if (false) можно:
I>
I>#ifdef MACRO
I> if (cond1)
I> expr1;
I> else
I> if (cond2)
I> expr2;
I> else
I>#endif
I> if (cond3)
I> expr3;
I> else
I> expr4;
I>
тут не форматировщик VC 9.0 виноват.
каждый раз, когда я вижу на ревью подобный код с лестницей if'ов, да еще и вперемежку с макросами я просто заворачиваю ревью кода.
мой комментарий простой — это место нужно переделать, так как плотное нагромаждение условной логики влечет затем десятки коммитов с фиксами в этом месте, новыми if'ами, функция разрастается, юнит тестированию не поддается...
думаю, понятно
Здравствуйте, igna, Вы писали:
I>Верно, но я пользуюсь форматировщиком VC 9.0, который превращает это в следующее:
я не знаю что такое форматировщик(хотя смутно подозреваю, что вы о редакторе), и vc 9.0 я даже в глаза не видел, мы тут как бы с++ обсуждаем или может давайте о ноутпаде с вордом поговорим?
Здравствуйте, Sni4ok, Вы писали:
S>я не знаю что такое форматировщик(хотя смутно подозреваю, что вы о редакторе), и vc 9.0 я даже в глаза не видел, мы тут как бы с++ обсуждаем или может давайте о ноутпаде с вордом поговорим?
O>мой комментарий простой — это место нужно переделать, так как плотное нагромаждение условной логики влечет затем десятки коммитов с фиксами в этом месте, новыми if'ами, функция разрастается, юнит тестированию не поддается... O>думаю, понятно
А можно подробнее?
Про макросы понятно.
Чем заменяете if'ы?
Здравствуйте, ole!, Вы писали:
O>каждый раз, когда я вижу на ревью подобный код с лестницей if'ов, да еще и вперемежку с макросами я просто заворачиваю ревью кода. O>мой комментарий простой — это место нужно переделать, так как плотное нагромаждение условной логики влечет затем десятки коммитов с фиксами в этом месте, новыми if'ами, функция разрастается, юнит тестированию не поддается...
Карты условий (WTL — MSG_MAP, ATL/COM — INTERFACE_MAP) принимаешь или заворачиваешь?
Здравствуйте, igna, Вы писали:
I>Еще одно применение if (false):
Страшно...
Никак нельзя этот каскад if-ов заменить, это же достанется поддерживать такое голову себе поломаешь вглядываесь в это нагромождение.
Ну в это еще может и нормально, но если там еще условий 6 в реальном коде, то меня бы совесть мучила.
Здравствуйте, frogkiller, Вы писали:
F>Дожили... язык программирования в качестве костыля для IDE
Так и должно быть!
Язык программирования должен позволять писать модули для расширения ИДЕ.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, andrey.desman, Вы писали:
AD>Если условия и действия записываются кратко и возвращают что-то осмысленное, то такая запись мне кажется более удачной:
Здравствуйте, andrey.desman, Вы писали:
AD>Если условия и действия записываются кратко и возвращают что-то осмысленное, то такая запись мне кажется более удачной: AD>
Когда компилятор научится расставлять точки для прерываний внутрь выражений — тогда этот подход будет иметь полное право на жизнь. А пока что, такой многоэтажный or-else — как минимум, издевательство при отладке.
Ну и ещё, все expr надо заменить на ((void)(expr), true).