На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 373 374 [375] 376 377 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата IL_Agent @
    Небось опять конструкторы мусолить будете ? :lol:
    А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях. :whistle:
      Цитата IL_Agent @
      Небось опять конструкторы мусолить будете ? :lol:

      Подскажи чего-нибудь интересное :)
        Цитата Повстанець @
        Цитата IL_Agent @
        Небось опять конструкторы мусолить будете ? :lol:
        А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях. :whistle:

        Да, там, кстати, ужасный жестяной ужас :blink: Щас нам IL_Agent о нём поведает :whistle:
        Сообщение отредактировано: MyNameIsIgor -
          Шарпист тоже сбежал.

          Трепещут враги! С++ непобедим!!! :D
            Цитата Повстанець @
            А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях. :whistle:

            Там всё очень просто :)
            Цитата MyNameIsIgor @

            Да, там, кстати, ужасный жестяной ужас :blink: Щас нам IL_Agent о нём поведает :whistle:

            :lol: Сильнее бросай, недолетает.
              Цитата MyNameIsIgor @
              Видимо, korvin всё же решил не думать над этой фигнёй :)

              да, я забил. тут вон ребята из RedHat тоже (привет, JetBrains) пытаются сделать правильную жабу
                Цитата korvin @
                ут вон ребята из RedHat тоже (привет, JetBrains) пытаются сделать правильную жабу

                А я думал, что правильная жаба - это скалка... А если ещё правильнее, то замыжание :D
                А вообще [:|||||||||||:] ;)
                  Цитата MyNameIsIgor @
                  А вообще [:|||||||||||:] ;)

                  ну я не слежу, а тут новость на лоре
                    Эммм... По-моему, я на лоре и читал...

                    Добавлено
                    По-моему, вот.
                      я в смысле о сегодняшней новости
                        Цитата Повстанець @
                        Ауууууууууууу!!! Делфисты! Выходите на смертный бой!

                        Лично у меня, времени нет ну вообще, ещё пылятся почти допиленные мультиметоды и недавно начатая вот эта штука.

                        Добавлено
                        Цитата D_KEY @
                        Цитата KILLER @
                        Цитата D_KEY @
                        То, что используется в С++, называется Traits class и не имеет отношения к ООП

                        Та чо далеко лазить, у нас на форуме есть описание с примерами: traits...

                        О как. Спасибо :)
                        korvin, DesweR, можете ознакомиться. А korvin может переписать на Java.

                        Да видел уже, собственно поэтому и просил простой пример без всякой языковой и библиотечной мишуры.

                        Добавлено
                        Цитата korvin @
                        уу... и только-то. но я бы сказал "в других языках не используется в виду отсутсвия необходимости" =)

                        Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном).

                        Добавлено
                        Цитата Qraizer @
                        и пожалуйста, меняя свойства, делаем наши символы регистро- и диакритически-независимыми при сравнении.

                        ExpandedWrap disabled
                          type
                            IComparer<T> = interface
                              function Compare(const Left, Right: T): Integer;
                            end;
                           
                           
                            TCharInsensitiveComparer = class(TInterfacedObject, IComparer<Char>)
                            public
                              function Compare(const Left, Right: Char): Integer; override;
                            end;
                           
                            TCharSensitiveComparer = class(TInterfacedObject, IComparer<Char>)
                            public
                              function Compare(const Left, Right: Char): Integer; override;
                            end;
                           
                           
                          var
                            Comparer: IComparer<Char>;
                            A, B: Char;
                          begin
                            Comparer := TCharInsensitiveComparer.Create;
                           
                            if Comparer.Compare(A, B) then
                              ...
                           
                            Comparer := TCharSensitiveComparer.Create;
                           
                            if Comparer.Compare(A, B) then
                              ...
                          end;
                          Цитата DesweR @
                          Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном).
                          Ага. Сколько там в делфи типов строк понапихано? ;)

                          И чего это там за ужос в хвосте поста? Как мне вот так на делфи сделать:
                          ExpandedWrap disabled
                            s1, s2: TOneOfHugeSetDelfiString;
                            s1 := "aaaaBBBB";
                            s2 := "AAAAbbbb";
                             
                            if(s1 = s2)
                                writeln("Хочу видеть это сообщение!");
                            Цитата Повстанець @
                            Ага. Сколько там в делфи типов строк понапихано?

                            И? В основном используется только один - string, остальные по необходимости - когда дело касается системщины. Предлагай тогда какую-нибудь задачку.

                            Цитата Повстанець @
                            И чего это там за ужос в хвосте поста?

                            Что за бред, обоснуешь? Там ничего экстраординарного.

                            Цитата Повстанець @
                            Как мне вот так на делфи сделать:

                            Писал же. Смотри.
                            ExpandedWrap disabled
                              var
                                s1, s2: TOneOfHugeSetDelfiString;
                              begin
                                s1 := 'aaaaBBBB';
                                s2 := 'AAAAbbbb';
                               
                                if Comparer.Compare(s1, s2) then
                                  writeln('Хочу видеть это сообщение!');
                              end;
                              Цитата DesweR @
                              Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном).

                              Эти компараторы действуют run-time, а trait'ы плюсов - compile-time. А потом появляются такие статьи о том, как всё это раскочегарить, и россказни о всемогущих JIT'ах, коими нас здесь кормил Вуйко...
                                Цитата MyNameIsIgor @
                                Эти компараторы действуют run-time, а trait'ы плюсов - compile-time.

                                Будут дополнительные вызовы, но разница не столь существенна (по отношению ко остальному рабочему коду).
                                ExpandedWrap disabled
                                  type
                                    TIntComparer = class(TComparer<Integer>)
                                    public
                                      function Compare(const Left, Right: Integer): Integer; override;
                                    end;
                                   
                                  function TIntComparer.Compare(const Left, Right: Integer): Integer;
                                  begin
                                    Result := Left - Right;
                                  end;
                                   
                                   
                                  var
                                    Comparer: IComparer<Integer>;
                                    A, B: Integer;
                                  begin
                                    A := 1;
                                    B := 2;
                                   
                                    Comparer := TIntComparer.Create;
                                    Comparer.Compare(A, B);
                                  end.


                                ExpandedWrap disabled
                                  Project2.dpr.47: Comparer.Compare(A, B);
                                  0044535E 8BCE             mov ecx,esi
                                  00445360 8BD3             mov edx,ebx
                                  00445362 A18CCF4400       mov eax,[$0044cf8c]
                                  00445367 8B38             mov edi,[eax]
                                  00445369 FF570C           call dword ptr [edi+$0c]
                                   
                                  00442715 83C0F4           add eax,-$0c
                                  00442718 50               push eax
                                  00442719 8B00             mov eax,[eax]
                                  0044271B 8B00             mov eax,[eax]
                                  0044271D 870424           xchg [esp],eax
                                   
                                  Project2.dpr.29: Result := Left - Right;
                                  00442A2C 8BC2             mov eax,edx
                                  00442A2E 2BC1             sub eax,ecx


                                Добавлено
                                Цитата MyNameIsIgor @
                                Эти компараторы действуют run-time, а trait'ы плюсов - compile-time.

                                А если нужно динамически подменять компараторы по условию?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 373 374 [375] 376 377 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5201 ]   [ 14 queries used ]   [ Generated: 30.07.26, 19:03 GMT ]