Кресты / Говнокод #26912 Ссылка на оригинал

0

  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 digitalEugene, (Updated )

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

  • Разве настоящие крестобляди так кастуют?
    Ответить
      • ну да, неприлично же делать
        (foo*)bar
        Ответить
          • Потому что скобочки имеют две семантики: реинтерпретер и статик.
            Ответить
                  • Чем более точно ты выражаешь свои намерения, тем меньше шансов на ошибку, и тем проще читающему.

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

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

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

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8