На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 182 183 [184] 185 186 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    ExpandedWrap disabled
      template <typename T> class bla_bla
      {
        void foo(T obj);
        void bar(T obj)
        {
         if (obj::ImAClass)
          foo(obj.Clone());
         else
          foo(obj);
        }
      };
    А-а-а!!! Фтопку.
      Цитата Qraizer @
      Тебя не удивляет, что double передаётся параметру, имеющему тип int? Вот кривизна-то, он оказывается при этом срезается...

      Не удивляет. Да, кривизна, из той же оперы. Даже в С# такого безобразия нет. :)
      Остальной батхёрт, с твоего позволения, проигнорирую, т.к. всё не в кассу :)
        Цитата Qraizer @
        А-а-а!!! Фтопку.
        Про обобщенное программирование - отдельные товарищи(не будем тыкать в них пальцем) тебя не поймут. Инопланетная технология.
          Цитата IL_Agent @
          Я про "скрытость под капотом". Как это по-твоему должно быть ?
          Как мне надоело одно и тоже с переодичностью раз в месяц писать. Ладно. Ещё раз. Есть объект, порождённый из типа... ну скажем some_type. Он имеет следующее поведение:
          ExpandedWrap disabled
            some_type some_obj;
            some_obj = 1;
            print(some_obj);\\в консоль 1
            some_obj = 2;
            print(some_obj);\\в консоль 2
          и теперь.
          ExpandedWrap disabled
            void foo(some_type some_obj)
            {
                some_obj = 2;
            }
             
            ...
            some_obj = 1;
            foo(some_obj);
             
            print(some_obj);
          Что мне ожидать в консоли? В языках с объектными типами я всегда ожидаю 1. И это нормально. В языках со ссылочными типами я всегда ожидаю 2. И это нормально. Что мне ожидать в шарпе?
            Цитата Qraizer @
            korvin мыслит эвклидово, теми аксиомами, которые вычитал. Ему не докажешь, что геометрия нашего мира вообще-то неэвклидова. Это не просто заметить, а он ещё и не хочет.

            вовсе нет, практика показывает, что C++ -- белая ворона, с какими-то своими, особыми понятиями
              Цитата trainer @
              Про обобщенное программирование - отдельные товарищи(не быдем тыкать в них пальцем) тебя не поймут. Инопланетная технология.

              Технология хорошая, реализация в С++ - мягко говоря, не очень :)

              Добавлено
              Повстанець, вот теперь я понял, что ты имеешь в виду. Да, в шарпе надо знать, ссылочный тип или нет.
                Цитата Повстанець @
                В языках со ссылочными типами я всегда ожидаю 2. И это нормально.

                нет, ты путаешь ссылочный тип и передачу по ссылке
                  Цитата IL_Agent @
                  Технология хорошая, реализация в С++ - мягко говоря, не очень :)
                  Давай поговорим о обобщённом программировании в С++. Чем конкретно не нравится реализация?

                  Добавлено
                  Цитата korvin @
                  нет, ты путаешь ссылочный тип и передачу по ссылке
                  Я думаю все поняли, что конкретно я имею ввиду.
                    Цитата Повстанець @
                    Давай поговорим о обобщённом программировании в С++. Чем конкретно не нравится реализация?

                    Ограниченностью и write-only (см. boost).
                      Цитата IL_Agent @
                      Ограниченностью и write-only (см. boost)
                      Краткость - не твоя сестра?
                      Зачем смотреть в boost, а не в его документацию? В C# без ковыряния в исходниках библиотек программировать невозможно?
                      Сообщение отредактировано: trainer -
                        Цитата Повстанець @
                        Я думаю все поняли, что конкретно я имею ввиду.

                        а, ок
                          trainer, про написание речь, а не про использование.
                            Цитата IL_Agent @
                            Ограниченностью и write-only (см. boost).
                            Хорошо, про сложность шаблонных конструкций -- принимается. А ограниченность? Вот интересно, в чём тебя ограничивает полнотьюринговая система? :unsure:
                              Цитата korvin @
                              тогда прекратите задавать глупые вопросы

                              Когда я говорил
                              Цитата MyNameIsIgor @
                              Что значит "не так"? Синтаксис не тот?

                              я имел в виду, что передача по ссылке (как в Java)
                              ExpandedWrap disabled
                                void Func(Base& b)

                              выглядит не так же.
                              Цитата korvin @
                              ссылке: реализация не приводится к супертипу
                              ...
                              (это как в джаве)

                              Лол? Как это не приводится? Функция получает ссылку на предка, а то, что там есть виртуальные методы - это другой вопрос. Так что ссылка на потомка всё же приводится к ссылке на предка.
                              Цитата korvin @
                              значению: реализация не приводится к супертипу
                              (это как в джаве)

                              Покажите мне передачу по значению экземпляра класса в Java.
                              Цитата korvin @
                              ссылке: реализация не приводится к супертипу
                              ...
                              (это как в плюсах)

                              Такая же чушь, как про джаву. В плюсах ссылка на потомка приводится к ссылке на предка. Наличие виртуальных методов тут ни при чём.
                              Цитата korvin @
                              значению: реализация приводится к супертипу
                              (это как в плюсах)

                              Ещё одна чушь незнающего плюсы. Я уже имел честь объяснить IL_Agent'у: в обсуждаемом фрагменте происходит приведение ссылки на потомка к ссылке на предка (что нормально, как я чуть выше объяснял), а уже потом - вызов конструктора копирования предка, который IL_Agent не запретил, но утверждает, что это вина языка.
                              Так что система типов тут ни при чём: в коде написано, что передавать необходимо по значению, что и происходит.
                              Сообщение отредактировано: MyNameIsIgor -
                                Цитата Flex Ferrum @
                                Да и в паскале/делфи не предусмотрено никаких специальных конструкций для передачи аргументов, принимаемых функцией как var.

                                Наверное потому, что ссылки в "чистом" виде там не встречаются ;)

                                Скрытый текст
                                Цитата Qraizer @
                                korvin мыслит эвклидово, теми аксиомами, которые вычитал. Ему не докажешь, что геометрия нашего мира вообще-то неэвклидова.

                                Цитата korvin @
                                вовсе нет, практика показывает, что C++ -- белая ворона, с какими-то своими, особыми понятиями

                                Не ищем мы никого, кроме людей. Не нужно нам других миров. Нам нужно зеркало (с) Солярис

                                Цитата trainer @
                                Про обобщенное программирование - отдельные товарищи(не будем тыкать в них пальцем) тебя не поймут. Инопланетная технология.

                                :tong:
                                Сообщение отредактировано: DesweR -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 182 183 [184] 185 186 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.3373 ]   [ 14 queries used ]   [ Generated: 31.07.26, 22:30 GMT ]