1. C++ / Говнокод #26912

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    void tick(void)
    {
    	for (auto&& x : registry.objects)
    		(x? std::function<void(void)>([&](void) {((IObject*)(x))->tick(); }) : [&]() {})();
    }

    Мозг сказал что "((IObject*)(x))->tick();" написать слишком сложно и повелел написать вот это.

    Запостил: digitalEugene, 03 Сентября 2020

    Комментарии (30) RSS

    • Разве настоящие крестобляди так кастуют?
      Ответить
      • Ты про static_cast<IObject*>(x)?
        Ответить
        • ну да, неприлично же делать
          (foo*)bar
          Ответить
          • Почему?
            Ответить
            • Потому что скобочки имеют две семантики: реинтерпретер и статик.
              Ответить
              • И конст до кучи.
                Ответить
              • Как скобочками сделать реинтерпред?
                Ответить
                • (Foo*)bar
                  Ответить
                  • Перепутал с dynamic. А что плохого в этом?
                    Ответить
                    • Чем более точно ты выражаешь свои намерения, тем меньше шансов на ошибку, и тем проще читающему.

                      Скобочка умеет:
                      * Превратить плавающего питуха в неплавающего (довольно сложная операция на самом деле) или расширить маленькое целое до большого
                      * Заставить компилятор считать указатель на FOO указателем на BAR
                      * Убрать const (как заметил Брмнд)

                      Для трех таких разных хуйней всего один оператор. Это плохо. Крестобляди решили, что лучше иметь три явных оператора
                      Ответить
                    • Слишком много умеет, можно случайно хуйни накастовать.
                      Ответить
                      • отлично-именно-этого-я-и-хотел.jpg
                        Ответить
                        • Ты мемы налету выдумываешь?
                          Ответить
                          • нет, я просто не помню точный текст наизусть

                            https://cs10.pikabu.ru/post_img/big/2018/05/08/4/152575887213616023.jpg
                            Ответить
                      • Приведи реальный пример.
                        Ответить
                        • Ну случайно const срежешь с const аргумента и запишешь что-нибудь в него.

                          Или случайно кастанешь указатели на не имеющие отношения друг к другу классы.
                          Ответить
                          • а можно чтобы компилятор показывал ворнинг от скобочек?
                            по идее только в .c файлах такой код долджен быть
                            Ответить
                            • А в .h?
                              Ответить
                              • в .h вообще не нужно иметь кода, если это не шоблоёбло
                                А в сишечке шоблоёбло не бывает, так что если это .h и там код -- то это стопудово С++, и тогда там не место скобочкам
                                Ответить
                                • Блядь, как всё сложно, именно поэтому я за «.php».
                                  Ответить
                                  • ты же крестоблядишь на работе вроде, не?
                                    Ответить
                                    • Выебал тебя во все дыры фаллосом с Али, проверь.
                                      Ответить
                                • я не особо сишник, но разве инлайновой петушне место не в .h?
                                  Ответить
                                  • Нет, компеляторы уже лет десять как вполне нормально инлайнят петушню из .c.
                                    Ответить
                                    • у меня CLion чет ругался, когда я в .c хотел засунуть. стандарт вроде с11 был.
                                      Ответить
                                      • Надо было ему любовь предложить, чтоб не ругался. Помнишь, как Егова завещал? "живите в любви и согласии". Да, анальную.
                                        Ответить
                                  • ну в теории можно ее там разместить, да. И макрос еще (но в крестах он редко нужен_)
                                    Ответить
                            • -Wold-style-cast

                              З.Ы. О как, он даже показывает какой именно каст тут бы подошёл.
                              Ответить
      • Да я пришел из сишечки
        Ответить

    Добавить комментарий