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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if constexpr (BusMode::BLOCKING == mode) {
        derived()->send_block(arr, num);
    } else if (BusMode::IT == mode){
        derived()->send_it(arr, num);
    } else if (BusMode::DMA == mode){
        derived()->send_dma(arr, num);
    }

    https://habr.com/ru/post/556144/
    > Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
    Стреляем себе в ногу при помощи if constexpr.

    Запостил: PolinaAksenova, 10 Мая 2021

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

    • А всё потому, что else if — это ня специальная конструкция, а сочетание двух обычных ╮( ̄ω ̄;)╭.
      Ответить
      • Конпелятор умный же и сам оптимизнёт?
        Ответить
      • То ли дело elif, да? Именно поэтому ты за «Python»?
        Ответить
        • А я за "PHP".
          Ответить
          • А почему ты за "РНР"?
            Ответить
            • Там есть «elseif».
              Ответить
              • йа за луа
                Ответить
                • А я за «Nim»!
                  Ответить
                  • форси ним активнее, мы должны все им загореться
                    Ответить
                    • Хочу, чтобы все писали на «Nim», как единый организм «метух».
                      Ответить
                    • Кстати, а ты знал, что в «Nim» можно вот так вот выйти из двойного цикла:
                      block double_loop:
                        while true:
                          while true:
                            echo "Ня! ^~^"
                            break double_loop

                      Как тебе такое? Это хуйня в стиле GOTO или же принципиально новая концепция, элегантно решающая проблему?

                      Правильный ответ – второе.
                      Ответить
                      • В Kotlin тоже можня!
                        fun main() {
                            val arr = listOf(
                                listOf(1, 2, 3),
                                listOf(4, 5, 6),
                                listOf(7, 8, 9)
                            )
                        
                            toplevel@ for (lst in arr) {
                                for (x in lst) {
                                    println(x)
                                    if (x == 5) {
                                        break@toplevel
                                    }
                                }
                            }
                        }

                        Это, правда, очень няидиоматичный Котлин, ну да ладня.
                        Ответить
                        • Это потому что «Kotlin» кавайный!

                          Но можно ли сделать в «Kotlin» то же самое... Но в compile-time?

                          block double_loop:
                            while true:
                              while true:
                                echo "Ня! ^~^"
                                const neko: bool = false;
                                when neko:
                                  echo "Nyan!!!!"
                                  break double_loop
                                else:
                                  echo "nyan... ;–;"
                                  break double_loop


                          «when» тут это аналог сишных мокросов типа #ifdef uwu
                          Ответить
                        • Это же и в Жабе можно сделать.
                          Ответить
                      • Чем это лучше [delimited] continuations?
                        Ответить
                        • > [delimited] continuations
                          А ня этом можня забабахать гостевуху?
                          (*≧ω≦*)
                          Ответить
                          • Вай нот. В ноде всю асинхронщину считай на continuation'ах писали...
                            Ответить
                    • У меня препод в вузе форсил ним

                      Потом поехал на политической почве
                      Ответить
                      • ого, ним опасен, оказывается

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

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