На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++

Страницы: (117) « Первая ... 25 26 [27] 28 29 ...  116 117  ( Перейти к последнему сообщению )  
> Delphi vs C++ , Часть 1
    Цитата Profi @
    Не, Builder не катит, т.к. использует все туже VCL!
    Вообще-то не совсем ту же. Класс Variant написан на C++, CoInitialize - функция WinAPI и явно не на паскале написана, а CreateOleObject сотоит из двух строчек, которые переписать на C++ как два пальца об асфальт. Нормальные претензии будут?
      кстати, вспоминая сейчас молодость, понял, какой патологический страх появлялся от мысли "написать бы че-нибудь на с\с++" :) дельфи очень сильно разлагает моск... [выгрызено] (без обид - моё скромное мнение)...
      Сообщение отредактировано: wind -
        Цитата Profi @
        Я же не знаю что за типы _InIt и _Ty&
        А этого никто не знает. Они выводятся по обстоятельствам во время инстанцирования шаблона при компиляции. Известен лишь ограниченный набор требований к ним.
          ну вот на смену постепенной и размеренной беседе пришел настоящий холивар :)
            Цитата Profi @
            Перевести можно? Можно! На Delphi проще? Проще!


            Цитата Profi @
            Я перевел код Flex'а, ты мой - нет.

            а что тут переводить?
            ExpandedWrap disabled
              #include "variant.h"
              #include <iostream>
              int main()
              {
                 Variant v1 = "25";
                 Variant v2 = 3 + v1;
               
                 std::cout << v2;
              }
              Цитата Мяут @
              ну вот на смену постепенной и размеренной беседе пришел настоящий холивар :)

              Неа, я исправился. Оффтоп ушёл в PM.
                Цитата H.Iglesias II @
                а что тут переводить?
                да он про рефлексию (GetPropList)... да, язык не поддерживает этого... а зачем?
                  Цитата Profi @
                  Ok. Перепиши на C++

                  Ух ты, на дельфяк что-то вроде рефлексии есть? Прикольно.
                  Цитата Мяут @
                  метапрограммирование шаблонов

                  Я бы назвал это «метанедопрограммирование».
                  Цитата Мяут @
                  templates это не просто шаблоны - это STL, Boost

                  А Delphi -- это не просто Object Pascal, а еще и VCL. Вот положа руку на сердце: удобнее VCL для рисования графических морд я не видел. Даже Qt и Gtk нервно курят в сторонке.

                  Добавлено
                  Цитата archimed7592 @
                  variant со всеми свойствами, которые у него есть можно без особых проблем реализовать в с++...

                  Не переведешь. В Delphi любой[i] тип можно запихнуть в variant, а уж array of variant -- вообще свобода мысли --, в то время, как твой плюсовый вариант будет работать [i]только для описанных тобой типов внутри твоего проекта. В этом смысле Delphi более объектно-ориентированный язык: даже элементарные типы имеют общего предка.
                  Цитата archimed7592 @
                  такой по-моему уже есть в каких-то com-либах

                  CVariant какой-нибудь чтоли? Не имеет никакого отношения к дельфевому variant'у.
                  Цитата Мяут @
                  Profi, наф мне Дельфи если я Ц++ знаю? :)

                  Для расширения кругозора? VCL -- отличный пример многократного повторного использования кода.

                  Добавлено
                  Цитата H.Iglesias II @
                  а что тут переводить?

                  А что ты перевел? У меня не компилится. Linux x86_64, gcc-4.1.2.
                    Цитата linuxfan @
                    Не переведешь. В Delphi любой тип можно запихнуть в variant, а уж array of variant -- вообще свобода мысли --, в то время, как твой плюсовый вариант будет работать только для описанных тобой типов внутри твоего проекта. В этом смысле Delphi более объектно-ориентированный язык: даже элементарные типы имеют общего предка.
                    про boost::any, наверное не слыхал ниче? :whistle:
                    Цитата linuxfan @
                    VCL -- отличный пример многократного повторного использования кода.
                    лесом идёт ваше многократное использование в виде T*List :tong:
                      Цитата linuxfan @
                      Даже Qt и Gtk нервно курят в сторонке.

                      ОбоснуЙ! >:(
                        Ни фига себе объёмы :wacko:

                        Цитата Profi @
                        2. Разнообразия ".", ":", "->" тоже немного напрягает, уж лучше, когда везде ".".

                        В C++ это явно не лучше. Оператор -> можно применять как ко встроенным указателям, так и имитирующим их поведение smart указателям, а также пользовательским итераторам. Отсутствие разделения на . и -> привело бы к серьёзным трудностям. Для Delphi это, может быть, не столь актуально, т.к. обобщённое программирование там практически отсутствует (что явно не есть плюс для этого языка).

                        Касаемо :: тоже всё правильно

                        ExpandedWrap disabled
                          class Base
                          {
                          public:
                              virtual void func() { /*...*/ }
                          };
                           
                          class Derived : public Base
                          {
                          public:
                              void func() { /*...*/ }
                          };
                           
                          void f()
                          {
                              Base* pBase = new Derived;
                              pBase->func(); // вызов Derived::func за счёт использования RTTI
                              pBase->Base::func(); // явный вызов Base::func
                          }

                        Сразу понятно, что к чему относится. А как бы это выглядело с одними точками? :wacko:

                        Цитата archimed7592 @
                        в с++ они не реализованны по тем причинам, что там не только get и set будет... там ещё += -= *= &= |= >>= <<= и т. д. и проперти будут только путать, имхо...

                        Вот как раз-таки в этих случаях property обладают преимуществом перед прямыми вызовами get/set, IMHO. Почитай топик property.

                        Цитата Profi @
                        Все это заменяется TList'ом

                        Как просто, оказывается, можно заменить шаблоны :lool: :lol:

                        Цитата Мяут @
                        ну вот на смену постепенной и размеренной беседе пришел настоящий холивар

                        Я бы охарактеризовал это как детский сад :D

                        Цитата linuxfan @
                        В Delphi любой[i] тип можно запихнуть в varian

                        Даже любой пользовательский тип? И чего с ним потом можно делать?

                        Цитата archimed7592 @
                        про boost::any, наверное не слыхал ниче?

                        Ты, наверное, хотел сказать boost::variant?
                        Сообщение отредактировано: Dantes -
                          Цитата Dantes @
                          Ты, наверное, хотел сказать boost::variant?
                          я хотел сказать boost::any ;) а в конкретную специализацию boost::variant любой тип не запихнёшь :tong:
                            Ну да, в any-то ты запихнёшь что угодно, только вот обратно доставать не очень удобно.
                              Цитата Dantes @
                              только вот обратно доставать не очень удобно.
                              а из дельфи-variant удобно? :rolleyes:
                                Я так понял, что variant автоматом преобразуется в нужный тип. Я не прав? :unsure:

                                Добавлено
                                Тем более, в приведённых примерах было обращение к членам объекта - о таком boost::any и boost::variant могут только мечтать.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (117) « Первая ... 25 26 [27] 28 29 ...  116 117
                                Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++



                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0711 ]   [ 15 queries used ]   [ Generated: 14.08.25, 19:11 GMT ]