На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (78) « Первая ... 67 68 [69] 70 71 ...  77 78  ( Перейти к последнему сообщению )  
> Текущий Стандарт С++ и перспективы его развития
    Цитата Axis @
    А я не вижу обязательности break.

    Буквоед <_< Под обязательностью имелось ввиду его нужность в абсолютном большинстве случаев.
      Цитата Qraizer @
      Это вы ещё в сырцы Дума не заглядывали. Знаете, чем он занимается, когда ещё в текстовом экране точки рисует? Много точек. Строит свой код в памяти в виде кучи функций, отрисовывающих то ли спрайты, то ли текстуры в нужных масштабах, каждая в своём и каждая без переходов и условий. Просто в нужном месте вызывается нужная функция, в зависимости от нужного масштаба.

      На асме частенько генерировал код и не только такой. Но то дело было на спектруме. Сил на многое не хватало, но писал 512байт демо, по своей сути генераторы, которые забивали всю память кодом и переходили в него. Так что я совсем этому не удивляюсь ;)
      Цитата OpenGL @
      Буквоед Под обязательностью имелось ввиду его нужность в абсолютном большинстве случаев.

      Ну и в каком процедурном языке этого не нужно?
        Цитата Axis @
        Ну и в каком процедурном языке этого не нужно?

        Delphi, например, прекрасно обходится без него.
          Цитата OpenGL @
          Delphi, например, прекрасно обходится без него.
          Зато там даже так не смогу написать.
          ExpandedWrap disabled
            int action = 0;
            switch(something)
            {
            case foo_const: action = 5;
            case bar_const: call_something(action);
            }
          На кой мне как в делфи.
            Я и не говорил, что break нужен всегда. Имхо, лучше бы по-дефолту был переход в конец, а если надо идти дальше - вписывать continue.
              Цитата Axis @
              Зато там даже так не смогу написать.

              Какая потеря
                Цитата Axis @
                Зато там даже так не смогу написать.

                Зато в Go сможешь.

                ExpandedWrap disabled
                  action := 0;
                  switch something {
                  case foo_const:
                      action = 5
                      fallthrough
                  case bar_const:
                      call_something(action)
                  }


                И да, согласен с D_KEY.
                Сообщение отредактировано: korvin -
                  Цитата Axis @
                  Цитата applegame @
                  Тоже мне проблема. Вон руби-программисты живут с таким разрешением и что-то не слышно жалоб - https://ideone.com/DVVp6a
                  А потом приходит новый разработчик и тратит совсем не чуть-чуть времени, чтобы разобраться во всей этой ахинеи.

                  Это я к тому, что разрешение перезагрузки операторов для встроенных типов совсем не означает, что все бросятся их перезагружать. То бишь, в самом по себе наличии такого разрешения ничего плохого нет.
                    Цитата applegame @
                    Это я к тому, что разрешение перезагрузки операторов для встроенных типов совсем не означает, что все бросятся их перезагружать.
                    Однако на практике мы видим, что часто программист использует неудачные особенности языка (иногда доставшиеся в наследство от ранних версий) мотивируя это тем, что раз такая возможность есть, то надо её использовать (этакий фетишизм).
                    Цитата applegame @
                    То бишь, в самом по себе наличии такого разрешения ничего плохого нет.
                    Плохое есть в самой возможности переопределять не тобой определённое. Поскольку даже разовое использование такой возможности приведёт к тому, что объект будет по разному себя вести в зависимости от окружения. Сопровождать такой проект будет просто невозможно.
                      Цитата amk @
                      Однако на практике мы видим, что часто программист использует неудачные особенности языка (иногда доставшиеся в наследство от ранних версий) мотивируя это тем, что раз такая возможность есть, то надо её использовать (этакий фетишизм).
                      Часто? Лично я никогда не видел чтобы кто-то на практике переопределял операторы для встроенных типов. А ты?
                      Цитата amk @
                      Плохое есть в самой возможности переопределять не тобой определённое. Поскольку даже разовое использование такой возможности приведёт к тому, что объект будет по разному себя вести в зависимости от окружения. Сопровождать такой проект будет просто невозможно.
                      Плохое? Это же и есть суть динамического полиморфизма. Виртуальные функции разве не переопределяют не тобой определенное?
                        amk, тебя послушать, так люди на руби прям мучаются страшно... А они вполне себе живут и скорость разработки выше, чем на плюсах.
                          Цитата applegame @
                          Лично я никогда не видел чтобы кто-то на практике переопределял операторы для встроенных типов. А ты?
                          Я даже не встречал людей, пишущих на языках, позволяющих такое сделать.
                          Цитата applegame @
                          Это же и есть суть динамического полиморфизма. Виртуальные функции разве не переопределяют не тобой определенное?
                          Чтобы переопределить виртуальную функцию, ты определяешь новый класс, с новым поведением (хотя и не совсем новым, иначе тоже хлопот не оберёшься), а не переопределяешь поведение существующего. Ты даже можешь выяснить, какого именно класса объект тебе попался.

                          Цитата D_KEY @
                          тебя послушать, так люди на руби прям мучаются страшно... А они вполне себе живут и скорость разработки выше, чем на плюсах.
                          Так и я тоже на питоне пишу быстрее, чем на плюсах. При этом питон не позволяет переопределять операции для стандартных типов. Лучше бы вспомнил языки Ada или Algol W. В них ты можешь для существующих типов определять новые операции (имеющиеся при этом остаются неприкосновенными)
                            Цитата OpenGL @
                            Лично я вижу разве что обязательный break в case.

                            И что в break идиотского ? Напротив, дает возможность перечислять несколько условий для одного действия.
                              Цитата KILLER @
                              Цитата OpenGL @
                              Лично я вижу разве что обязательный break в case.

                              И что в break идиотского ?

                              То, что его можно забыть. И при этом он нужен в большинстве типовых случаев.

                              Добавлено
                              Цитата KILLER @
                              Напротив, дает возможность перечислять несколько условий для одного действия.

                              Это можно было решить другим синтаксисом. Когда-то :)
                                Цитата D_KEY @
                                То, что его можно забыть. И при этом он нужен в большинстве типовых случаев.

                                Так а зачем? В чем его идиотство заключается? )

                                Цитата D_KEY @
                                Это можно было решить другим синтаксисом

                                Например?

                                Добавлено
                                Лишнее слово чтоль? Так лучше тогда экономить на именах переменных/методов/функций/классах ))
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (78) « Первая ... 67 68 [69] 70 71 ...  77 78


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1143 ]   [ 16 queries used ]   [ Generated: 17.06.25, 19:27 GMT ]