Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.221.53.209] |
|
Страницы: (32) « Первая ... 2 3 [4] 5 6 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Цитата Повстанець @ Ну раз догадываешься, как оно должно быть, зачем умничать и говорить, что там что-то не выполнится? Опять-же, то, что он write-only - спорно. Не зная, как устроены деструкторы, в аналогичном RAII коде ты будешь разбираться гораздо дольше. Я конечно подозреваюю, что эти goto содержатся внутри циклов и ветвей условий. Вот собственно так и получается write-only код, который при командной разработке не стоит ровным счётом ни-хе-ра. |
Сообщ.
#47
,
|
|
|
Цитата OpenGL @ Не зная как устроены деструкторы ты не будешь разбираться в аналогичном коде. Во всяком случае не у нас на проекте. Инфа 146%. Не зная, как устроены деструкторы, в аналогичном RAII коде ты будешь разбираться гораздо дольше. |
Сообщ.
#48
,
|
|
|
Цитата Повстанець @ Цитата OpenGL @ Не зная как устроены деструкторы ты не будешь разбираться в аналогичном коде. Во всяком случае не у нас на проекте. Инфа 146%.Не зная, как устроены деструкторы, в аналогичном RAII коде ты будешь разбираться гораздо дольше. Супер сказано |
Сообщ.
#49
,
|
|
|
Цитата Повстанець @ Не зная как устроены деструкторы ты не будешь разбираться в аналогичном коде. Во всяком случае не у нас на проекте. Инфа 146%. Это конечно хорошо, но не отменяет того, что иногда с goto код действительно становится понятнее и проще |
Сообщ.
#50
,
|
|
|
Цитата OpenGL @ Это конечно хорошо, но не отменяет того, что иногда с goto код действительно становится понятнее и проще Какие ваши доказательства? |
Сообщ.
#51
,
|
|
|
Цитата D_KEY @ Да хоть предмет спора (выход из функции) или выход из вложенных циклов. Сам же знаешь, что в меру иногда вполне неплохо. Какие ваши доказательства? |
Сообщ.
#52
,
|
|
|
Выход из вложенных циклов - да.
Выход из функции - только для pure C. В С++ это костыль. Ну разве что при активном использовании сишного API, но и тут можно обертки завести(а в некоторых случаях достаточно shared_ptr + кастомного deleter'а). |
Сообщ.
#53
,
|
|
|
Вложенные циклы уже сами по себе настораживают.
|
Сообщ.
#54
,
|
|
|
Отнюдь. Локальная размотка стека дёшева, это размотка, затрагивающая исполнительные блоки разных функций, может быть дорога. В тому же универсальные решения учитывают любые способы покинуть исполнительный блок, включая longjmp(). Если пробовать писать свой подобный велосипед, универсальный не получится проще и/или быстрее.
|
Сообщ.
#55
,
|
|
|
Цитата applegame @ Иногда goto вполне себе хорош. Была ситуация, когда в относительно длинной функции в нескольких местах надо было прервать выполнение, сделать несколько операций и выйти из функции. Наиболее простым и понятным вариантом оказался вариант с goto Может все же проще: do { ... break; ... break; ... break; ... } while (false); ? |
Сообщ.
#56
,
|
|
|
или так:
void process(data) { ... return; ... return; ... return; ... return; } void main() { //...initializing process(data); //...releasing } |
Сообщ.
#57
,
|
|
|
Цитата D_KEY @ Именно, так и было, много сишного апи. Обертки только усложняют и замедляют. Еще раз повторяю, зачем городить обертки, RAII и прочее только ради того чтобы сказать самому себе: "я победил goto!!!". goto применяется крайне редко, как правило в очень простых и понятных случаях вроде описанных. Ну разве что при активном использовании сишного API, но и тут можно обертки завести(а в некоторых случаях достаточно shared_ptr + кастомного deleter'а). Добавлено Цитата Chow @ Вряд ли, терпеть ненавижу циклы, которые на самом деле не циклы. Видим do и думаем, что сейчас что-то будет крутиться, а на самом деле все ради break. Сомнительное решение. Может все же проще |
Сообщ.
#58
,
|
|
|
Цитата applegame @ Именно, так и было, много сишного апи. Обертки только усложняют и замедляют. Еще раз повторяю, зачем городить обертки, RAII и прочее только ради того чтобы сказать самому себе: "я написан понятный, надёжный, простой код!!!" fixed |
Сообщ.
#59
,
|
|
|
Цитата MyNameIsIgor @ cut and distorted. fixed |
Сообщ.
#60
,
|
|
|
Цитата applegame @ Еще раз повторяю, зачем городить обертки, RAII и прочее только ради того чтобы сказать самому себе: "я победил goto!!!". Так не для этого городить надо. Идиома RAII тем хороша, что ты с одной стороны, знаешь, когда и что произойдет, а с другой - не делаешь это руками, т.к. все происходит в автоматическом режиме. На этом фоне даже finally выглядит костылем, а ты про goto... |