Сообщение Re[12]: C++ illegal instruction от 13.08.2025 8:21
Изменено 13.08.2025 8:22 rg45
Re[12]: C++ illegal instruction
Здравствуйте, Pzz, Вы писали:
Pzz>>>Мой любимый пример: x = (flag ? sin : cos)(y); Опыт показывает, что эта простая конструкция приводит многих собеседователей в тупик, в диапазоне от "а что это значит?" и до "а что, так можно?".
A>>Должен признаться, что понял, что делает этот код, только после 15 минут разглядывания.
Pzz>Ну, молодец.
Pzz>А я по молодости разок-другой такое в продакшене применил (разумеется не с sin/cos, с какой-то другой парой функций с одинаковым прототипом). Сейчас бы я так делать не стал. Народ реально не догоняет (к огромному моему удивлению).
Я бы тоже не стал использовать такую конструкцию, и не только потому, что это ставит кого-то в тупик, а потому что выражение (flag ? sin : cos) имеет тип указателя на функцию. Т.е дополнительная косвенность появляется совершенно не обосновано. Рассуждения примерно те же, что и в случае ++i vs i++. Подробнее здесь: 9. Не пессимизируйте преждевременно.
Pzz>>>Мой любимый пример: x = (flag ? sin : cos)(y); Опыт показывает, что эта простая конструкция приводит многих собеседователей в тупик, в диапазоне от "а что это значит?" и до "а что, так можно?".
A>>Должен признаться, что понял, что делает этот код, только после 15 минут разглядывания.

Pzz>Ну, молодец.
Pzz>А я по молодости разок-другой такое в продакшене применил (разумеется не с sin/cos, с какой-то другой парой функций с одинаковым прототипом). Сейчас бы я так делать не стал. Народ реально не догоняет (к огромному моему удивлению).
Я бы тоже не стал использовать такую конструкцию, и не только потому, что это ставит кого-то в тупик, а потому что выражение (flag ? sin : cos) имеет тип указателя на функцию. Т.е дополнительная косвенность появляется совершенно не обосновано. Рассуждения примерно те же, что и в случае ++i vs i++. Подробнее здесь: 9. Не пессимизируйте преждевременно.
Re[12]: C++ illegal instruction
Здравствуйте, Pzz, Вы писали:
Pzz>>>Мой любимый пример: x = (flag ? sin : cos)(y); Опыт показывает, что эта простая конструкция приводит многих собеседователей в тупик, в диапазоне от "а что это значит?" и до "а что, так можно?".
A>>Должен признаться, что понял, что делает этот код, только после 15 минут разглядывания.
Pzz>Ну, молодец.
Pzz>А я по молодости разок-другой такое в продакшене применил (разумеется не с sin/cos, с какой-то другой парой функций с одинаковым прототипом). Сейчас бы я так делать не стал. Народ реально не догоняет (к огромному моему удивлению).
Я бы тоже не стал использовать такую конструкцию, и не только потому, что это ставит кого-то в тупик, а потому что выражение (flag ? sin : cos) имеет тип указателя на функцию. Т.е дополнительная косвенность появляется совершенно необосновано. Рассуждения примерно те же, что и в случае ++i vs i++. Подробнее здесь: 9. Не пессимизируйте преждевременно.
Pzz>>>Мой любимый пример: x = (flag ? sin : cos)(y); Опыт показывает, что эта простая конструкция приводит многих собеседователей в тупик, в диапазоне от "а что это значит?" и до "а что, так можно?".
A>>Должен признаться, что понял, что делает этот код, только после 15 минут разглядывания.

Pzz>Ну, молодец.
Pzz>А я по молодости разок-другой такое в продакшене применил (разумеется не с sin/cos, с какой-то другой парой функций с одинаковым прототипом). Сейчас бы я так делать не стал. Народ реально не догоняет (к огромному моему удивлению).
Я бы тоже не стал использовать такую конструкцию, и не только потому, что это ставит кого-то в тупик, а потому что выражение (flag ? sin : cos) имеет тип указателя на функцию. Т.е дополнительная косвенность появляется совершенно необосновано. Рассуждения примерно те же, что и в случае ++i vs i++. Подробнее здесь: 9. Не пессимизируйте преждевременно.