Здравствуйте, Vain, Вы писали:
V>Какие здесь могут быть проблемы?
Когда поймают будут сильно бить...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Alexey F, Вы писали:
V>>Тут недавно пришла в голову мысль выходить из if-else условия по break. Придумалась такая вот реализация: AF>Хмм, а чем это отличается от: AF>
#define if_break( x ) switch ( 0 ) case 0 : if( x )
Незнаю, но отсутствие скобок меня настораживает.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, Alexey F, Вы писали:
V>>>Тут недавно пришла в голову мысль выходить из if-else условия по break. Придумалась такая вот реализация: AF>>Хмм, а чем это отличается от: AF>>
V>#define if_break( x ) switch ( 0 ) case 0 : if( x )
V>
V>Незнаю, но отсутствие скобок меня настораживает.
Отсутствие каких скобок? Я вообще не очень понял для чего тебе первых три #define.
Здравствуйте, Vain, Вы писали:
V>Дык, интересно, чем плохо это решение.
Большими счетами за мед. услуги и рисками потери трудоспособности...
А если серьёзно (хотя я думаю, что ты стебёшься так своеобразно, если честно), то
1) Вообще эта куча макросов слишком сложная и может как-то не так сработать. Например, если два if_break окажется в одной строке. Скажем потому, что их засунут в какой-то макрос... Или, например, такой код что будет делать:
if( cond1 )
if_break( cond 2 )
doSamthing();
2) Тому, кто будет это читать будет сильно не понятно что за if_break такой и что там в теле break делает...
3) Как это будет взаимодействовать с отладчиками -- отдельный вопрос...
4) Про эффективность тоже тема интересная...
5) Про подсветку, рефакторинг, редакторы и т. д. тоже
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Vain, Вы писали:
V>Незнаю, но отсутствие скобок меня настораживает.
В смысле?
switch и case могут обходится без скобок. "x" упоминается только один раз, вроде, не нужно в дополнительные скобки оборачивать.
Фигурных скобок нет в обоих предложенных вариантах.
Здравствуйте, vadimcher, Вы писали:
V>Отсутствие каких скобок? Я вообще не очень понял для чего тебе первых три #define.
Он там уникальную переменную заводит...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
V>>Дык, интересно, чем плохо это решение. E>1) Вообще эта куча макросов слишком сложная и может как-то не так сработать. Например, если два if_break окажется в одной строке. Скажем потому, что их засунут в какой-то макрос... Или, например, такой код что будет делать:
if( cond1 )
if_break( cond 2 )
doSamthing();
В принципе, должен работать. E>2) Тому, кто будет это читать будет сильно не понятно что за if_break такой и что там в теле break делает...
Понятно что. E>3) Как это будет взаимодействовать с отладчиками -- отдельный вопрос...
Как? E>4) Про эффективность тоже тема интересная...
Расскажите. E>5) Про подсветку, рефакторинг, редакторы и т. д. тоже
А что с ними?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
V>В принципе, должен работать.
В принципе не скомпилируется даже...
E>>2) Тому, кто будет это читать будет сильно не понятно что за if_break такой и что там в теле break делает... V>Понятно что.
Правда? А откуда ему это станет понятно?
E>>3) Как это будет взаимодействовать с отладчиками -- отдельный вопрос... V>Как?
Скорее всего плохо. Одни мусорные переменные в окне просмотра текущих переменных чего стоить будут...
E>>4) Про эффективность тоже тема интересная... V>Расскажите.
Ну там какие-то вычисления, сравнения ненужные. Стек тратится, опять же...
E>>5) Про подсветку, рефакторинг, редакторы и т. д. тоже V>А что с ними?
Ну не знают они такого слова if_break... Во всяком случае пока ты их не научишь...
НО НА ГЛАВНЫЙ ВОПРОС ТЫ ТАК И НЕ ОТВЕТИЛ!!!
НА КОЙ ЭТО НУЖНО?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
V>>В принципе, должен работать. E>В принципе не скомпилируется даже...
Да согласен, от усталости не заметил.
E>>>2) Тому, кто будет это читать будет сильно не понятно что за if_break такой и что там в теле break делает... V>>Понятно что. E>Правда? А откуда ему это станет понятно?
Какая сложность в 3х срочках кода? Или вы боитесь дефайнов как огня — так это другой разговор.
E>>>3) Как это будет взаимодействовать с отладчиками -- отдельный вопрос... V>>Как? E>Скорее всего плохо. Одни мусорные переменные в окне просмотра текущих переменных чего стоить будут...
Watch показывает только то что ты хочешь, а не что хочет отладчик.
E>>>4) Про эффективность тоже тема интересная... V>>Расскажите. E>Ну там какие-то вычисления, сравнения ненужные. Стек тратится, опять же...
Экономим на спичках? Скажите ещё что производительность в 2 раза упадёт.. бред.
E>>>5) Про подсветку, рефакторинг, редакторы и т. д. тоже V>>А что с ними? E>Ну не знают они такого слова if_break... Во всяком случае пока ты их не научишь...
Это не большая проблема.
E>НО НА ГЛАВНЫЙ ВОПРОС ТЫ ТАК И НЕ ОТВЕТИЛ!!! E>НА КОЙ ЭТО НУЖНО?
А из топика не ясно? Выходить из скопа. Не надо лишних условий писать там где это не нужно, достаточен один бряк и всё. Оччень удобно.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: А лучше читать Дейкстру и писать процедурно... ;)
Здравствуйте, Vain, Вы писали:
V>Да согласен, от усталости не заметил.
И в случае, когда два if_break попадают в одну строку, например из-за того, что они внутри одного макроса, тоже нехорошо получится...
V>Какая сложность в 3х срочках кода? Или вы боитесь дефайнов как огня — так это другой разговор.
Сложность такая, что при поддержке программист увидит не определение этих твоих безумных макросов, а использование. И начнёт думать, зачем всё так нестандартно сделано. А так, как никаких преимуществ такого поделия не видно, то очень уж задуматься можно...
IMHO, это совершенно эквивалентный код, но вторая версия читабельнее...
Если тебе вторая кажется неприемлемой, то и первая должна бы...
V>Watch показывает только то что ты хочешь, а не что хочет отладчик.
Да? Есть много отладчиков и много платформ. Я не знаю о какой именно ты пишешь, но подозреваю, что о MSVC. Там есть такое удобное окошко, которое типа auto locals называется, или как-то похоже. Так вот оно показывает автоматические переменные текущей функции, используемые в исполняемом сейчас куске кода...
V>Экономим на спичках? Скажите ещё что производительность в 2 раза упадёт.. бред.
IMHO, бред усложнять код НИЧЕГО ВЗАМЕН НЕ ПОЛУЧАЯ
V>Это не большая проблема.
Э-э-э? Почему небольшая? Все за удешевление и автоматизацию поддержки бьются, а у тебя небольшая проблема?
E>>НО НА ГЛАВНЫЙ ВОПРОС ТЫ ТАК И НЕ ОТВЕТИЛ!!! E>>НА КОЙ ЭТО НУЖНО? V>А из топика не ясно? Выходить из скопа. Не надо лишних условий писать там где это не нужно, достаточен один бряк и всё. Оччень удобно.
Достаточно одного goto и получаешь РОВНО ТУ ЖЕ СЕМАНТИКУ, только без велосипедов...
Кроме того не понятно зачем из скопа так выходить вообще надо, если уж тебе goto не нравится...
Кстати, если уж того, что ты хочешь добиваться, то логичнее так сделать:
Только всё равно лучше goto использовать для этих целей. Прямее, яснее и без хаккерства.
А ещё лучше читать Дейкстру и писать процедурно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Vain, Вы писали:
V>Какая сложность в 3х срочках кода?
Ты сам ответил на свой вопрос: V>Да согласен, от усталости не заметил.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Vain, Вы писали:
V>Какие здесь могут быть проблемы?
Смысл?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Смысл?
Видимо goto-фобия помноженная на неумение писать нормально...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
"Vain" <19391@users.rsdn.ru> wrote in message news:3360981@news.rsdn.ru... > Тут недавно пришла в голову мысль выходить из if-else условия по break. Придумалась такая вот реализация: > >
Здравствуйте, Erop, Вы писали:
V>>Какая сложность в 3х срочках кода? Или вы боитесь дефайнов как огня — так это другой разговор. E>Сложность такая, что при поддержке программист увидит не определение этих твоих безумных макросов, а использование. И начнёт думать, зачем всё так нестандартно сделано. А так, как никаких преимуществ такого поделия не видно, то очень уж задуматься можно...
E>Сравни читабельность:
E>IMHO, это совершенно эквивалентный код, но вторая версия читабельнее...
Ну ты всё понял.
V>>Watch показывает только то что ты хочешь, а не что хочет отладчик. E>Да? Есть много отладчиков и много платформ. Я не знаю о какой именно ты пишешь, но подозреваю, что о MSVC. Там есть такое удобное окошко, которое типа auto locals называется, или как-то похоже. Так вот оно показывает автоматические переменные текущей функции, используемые в исполняемом сейчас куске кода...
И что?
V>>Экономим на спичках? Скажите ещё что производительность в 2 раза упадёт.. бред. E>IMHO, бред усложнять код НИЧЕГО ВЗАМЕН НЕ ПОЛУЧАЯ
V>>Это не большая проблема. E>Э-э-э? Почему небольшая? Все за удешевление и автоматизацию поддержки бьются, а у тебя небольшая проблема?
Какое удешевление и автоматизация в 3х строчках кода? Ну ты сноб..
E>Только всё равно лучше goto использовать для этих целей. Прямее, яснее и без хаккерства. E>А ещё лучше читать Дейкстру и писать процедурно...
А ещё лучше не протирать чтаны на форумах.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]