Здравствуйте, mihailik, Вы писали:
WH>>Если тебя волнует будет ли освобожден ресурс до выхода из функции то не нужно. M>Если я должен думать, есть опастность или нет — значит я просто всегда ожидаю опасность. Где же тут C++ даёт послабление относительно Дельфи? Думать-то всё равно нужно столько же.
WH>>Но если есть какято очень хитрая логика которая случается раз в год... M>Чтобы засечь этот "раз в год", я должен думать об этой возможности каждую секунду. Где же экономия?
Тебе знакомо такое слово "проектирование"? То о чем ты сейчас говоришь относится именно туда. Если архитектура хреновая то отгребещь по полной в любом случае, а когда нормальная то на С++ работы много меньше.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали:
WH>>Где ты среду в дельфе нашол? Дельфи это unmanaged компилятор с произвольным доступом к памяти. Ни какого контроля. M>Средой я назвал окружение. Все вот эти "примочки" и "магию" компилятора. Свойства, RTTI. Семантику самого языка в конце концов.
M>Прямой доступ, конечно, разрешён.
Вот и закончилась безопасность. M>Но всё-таки не так явно и беззастенчиво, как в C++.
Но есть следовательно в один рад с жабой и .НЕТ ставить нельзя. M>Никакой явной адресной арифметики, обращения к указателям в стиле массивов и пр. В C++ это ещё в наследство от обычного C осталось. А в Дельфи наоборот, палки в колёса суют, если хочешь с укзателями работать.
Если кому захочется он всеравно сделает...
M>Кроме того, все объекты сугубо by ref.
Ну и нахрена это надо? M>Никаких объектов на стеке или ещё где ни попало.
Вот и приходится городить try/finally постоянно. M>Операторы, слава богу, не перегружаются.
Это еще почему? M>Никаких конструкторов копирования, неявных преобразований и множественного наследования.
В том то и засада что не всегда объект можно просто скопировать. M>Шаблоны тоже разум не затмевают.
Ага. И использование полиморвных контейнеров ведет к чистоте, простоте и надежности M>Короче говоря, возможности поурезаны, но нам-то это и нужно.
При написании ГУИ к БД согласен, а вот на счет всего остального.
M>А кому нужен мощный инструмент, налагающий большой груз ответственности, инструмент, требующий серьёзного и длительного обучения — вперёд. Тому на C++ работать самая дорога. Там и платят больше.
А кому нужен инструмент налогающий кучу ответственности и не дающий ни каких инструментов контроля тому примая дорога на дельфе работать.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, mihailik, Вы писали: AD>> AD>> 2mihailik: большая просьба, обдумывать свои ответы собеседнику, иначе AD>> есть вероятность того, что модератор перенесёт эту ветку в "Коллеги, AD>> улыбнитесь" m> Если мои рассуждения народ задолбали, я могу и заткнуться. Делов-то m> Кстати, а почему ты переводишь стрелу на модератора. Я считаю, у каждого m> должен быть свой внутренний модератор. Так что давай конструктивно. Что m> конкретно тебе не понравилось в моём сообщении?
Ещё раз повторюсь: — это привет от моего внутреннего модератора.
Теперь конструктивно:
m> По функциональности C++ опережает Дельфи только в возможности m> компилировать драйвера.
Так вот, если заглянуть в стандарт С++, то не найдёшь ни одной строчки о
компиляции драйверов. Это первое. Теперь, задумаемся, а что такое
функциональность языка. На мой взгляд, — это возможности (и связанные с ними
особенности), предоставляемые программисту в переводе формально поставленной
задачи в программный код. Т.е. с этой точки зрения, в С++ есть какая-то
"изюминка", которая позволила после компиляции превратить программный код в
драйвер ?
А теперь сравним функциональности языков (звёздочкой помечены, на мой
взгляд, наиболее используемые вещи)
Функциональность дельфи:
1. Переменные *
2. Типы *
3. Процедуры, функции (в т.ч. вложенные)
4. Классы
5. Абстакция, наследование, полиморфизм *
6. Тип "Ссылка на класс"
7. Виртуальные конструкторы
8. Глобальная фабрика объектов.
9. Довольно богатое RTTI *
10. Указатель на функцию в классе
11. VCL
12. Что-то ещё...
Функциональность С++:
1. Переменные *
2. Типы *
3. функции *
4. Классы *
5. Абстакция, наследование, полиморфизм *
6. Перегрузка операторов *
7. Нормальная(!) перегрузка функций *
8. Множественное наследование *
9. Понятие "объект класса" *
10. Поименованные области *
11. Шаблоны и STL:
— типизированные контейнеры и массивы *
— итераторы и типонезависимые алгоритмы *
— "умные" указатели и массивы *
— функторы и связыватели *
— ANSI/UNICODE строки *
— Указатели на функцию в классе
— фабрики объектов *
... ещё куча того, что реализуется за счёт шаблонов.
12. RTTI
13. Может кто ещё чего добавит, а то я забыл
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, mihailik, Вы писали: AD>>> AD>>> 2mihailik: большая просьба, обдумывать свои ответы собеседнику, иначе AD>>> есть вероятность того, что модератор перенесёт эту ветку в "Коллеги, AD>>> улыбнитесь" m>> Если мои рассуждения народ задолбали, я могу и заткнуться. Делов-то m>> Кстати, а почему ты переводишь стрелу на модератора. Я считаю, у каждого m>> должен быть свой внутренний модератор. Так что давай конструктивно. Что m>> конкретно тебе не понравилось в моём сообщении?
AD>Ещё раз повторюсь: — это привет от моего внутреннего модератора.
AD>Теперь конструктивно:
m>> По функциональности C++ опережает Дельфи только в возможности m>> компилировать драйвера.
AD>Так вот, если заглянуть в стандарт С++, то не найдёшь ни одной строчки о AD>компиляции драйверов. Это первое. Теперь, задумаемся, а что такое AD>функциональность языка. На мой взгляд, — это возможности (и связанные с ними AD>особенности), предоставляемые программисту в переводе формально поставленной AD>задачи в программный код. Т.е. с этой точки зрения, в С++ есть какая-то AD>"изюминка", которая позволила после компиляции превратить программный код в AD>драйвер ?
AD>А теперь сравним функциональности языков (звёздочкой помечены, на мой AD>взгляд, наиболее используемые вещи)
AD>Функциональность дельфи: AD>1. Переменные * AD>2. Типы * AD>3. Процедуры, функции (в т.ч. вложенные) AD>4. Классы AD>5. Абстакция, наследование, полиморфизм * AD>6. Тип "Ссылка на класс" AD>7. Виртуальные конструкторы AD>8. Глобальная фабрика объектов.
Если это касается СОМ, то наследоваников от TComObjectFactory великое множество. AD>9. Довольно богатое RTTI * AD>10. Указатель на функцию в классе AD>11. VCL AD>12. Что-то ещё...
Set (очень удобно с побитовыми операциями)
Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов**
Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As
Динамические массивы (умные)
Единая иерархия классов а также Is и As *
Явное разделение структур и объектов ( хотя записи с методами и не помешали)+-
и многое другое. AD>Функциональность С++: AD>1. Переменные * AD>2. Типы * AD>3. функции * AD>4. Классы * AD>5. Абстакция, наследование, полиморфизм * AD>6. Перегрузка операторов * AD>7. Нормальная(!) перегрузка функций * AD>8. Множественное наследование * AD>9. Понятие "объект класса" * AD>10. Поименованные области * AD>11. Шаблоны и STL: AD> — типизированные контейнеры и массивы * AD> — итераторы и типонезависимые алгоритмы * AD> — "умные" указатели и массивы * AD> — функторы и связыватели * AD> — ANSI/UNICODE строки * AD> — Указатели на функцию в классе AD> — фабрики объектов * AD> ... ещё куча того, что реализуется за счёт шаблонов. AD>12. RTTI AD>13. Может кто ещё чего добавит, а то я забыл
AD>Информация предоставлена, можешь сравнивать.
AD>--------------------------------------------------------- AD>СНП, Artyomov Denis. E-mail: artyomov <at> inbox.ru
и солнце б утром не вставало, когда бы не было меня
Не могли бы Вы воздерживаться от избыточного цитирования?
... << RSDN@Home 1.1 beta 2 >>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Serginio1, Вы писали:
WH>>>А вот о других средствах которые могут заменить шаблоны по подробней. S>>http://www.osp.ru/news/soft/2003/09/15_01_print.htm WH> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace.
Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так. И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline. При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них, но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя. S>>http://www.wn.ru/computers/16.09.2003/6.html WH> Вот только очередного С++глюка от багландов мне и не хватало... WH>Я очень сильно удивлюсь если это будет нормальный компилятор.
"Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
AD>>8. Глобальная фабрика объектов. S> Если это касается СОМ, то наследоваников от TComObjectFactory великое множество.
Ну и нафига этот геморой? В С++ все ATL делает. Ни разу фабрику ручками не писал. S> Set (очень удобно с побитовыми операциями)
Ну и нафига это на уровне языка надо? S> Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов**
Ну интерфейсы еще куда ни шло, а вот строки и темболие варианты на уровне языка S> Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As
Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast. S> Динамические массивы (умные)
И чтоже в них такого умного чего не может std::vector? S> Единая иерархия классов а также Is и As *
Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял. S> Явное разделение структур и объектов ( хотя записи с методами и не помешали)+-
А смысл? S> и многое другое.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Serginio1, Вы писали:
WH>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace. S> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так.
В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет
S>И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline.
BCB это глюкалово страшное. Если все это перенести в дельфи то точно хана дельфе. S>При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них,
Ну некоторые и на С безболезненно пишут, а некоторые и на асме. S>но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя.
Вот я и говоряю что .НЕТ2 ждать надо.
WH>> Вот только очередного С++глюка от багландов мне и не хватало... WH>>Я очень сильно удивлюсь если это будет нормальный компилятор. S> "Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder
Я не знаю про J Builder но С++билдер это глюкалово сплошное.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Serginio1, Вы писали:
WH>>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace. S>> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так. WH>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет
Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115
"Когда шаблонный класс откомпилирован, между ним и обычным классом фактически нет никакой разницы. На самом деле, результатом компиляции является не что иное как метаданные и промежуточный язык (IL). IL, конечно же, параметризован, чтобы принимать поставляемые пользователем типы где-то в коде. Отличие в использовании IL для шаблонного типа основано на том, является ли поставляемый параметр типа типом значения или ссылочным типом."
Различия между C# шаблонами и другими реализациями
"Шаблоны С++ существенно отличаются от C# шаблонов. Там где C# шаблоны компилируются в IL, что приводит к тому, что для каждого типа значения специализация разумно происходит во время выполнения и однажды только для ссылочных типов, шаблоны С++ являются по существу макросом расширения кода, которые генерируют специализированный тип для каждого параметра типа, поставляемого в шаблон. Кроме того, когда компилятор С++ сталкивается с шаблоном, таким как Stack целых, он расширяет код шаблона в класс Stack, содержащий целые как собственный тип. В зависимости от того, является ли параметр типа типом значения или ссылочным типом, за исключением компоновщика, специально разработанного для уменьшения количества кода, каждый раз компилятор С++ создает специализированный класс, в результате чего возникает существенное увеличение размера кода в сравнении C# шаблонами.
Более того, шаблоны С++ не могут определять ограничения. Они могут только неявно задать ограничения, просто используя член, который должен или не должен принадлежать параметру типа. Если в параметре типа, который в итоге передается в шаблонный класс, этот член существует, программа будет работать правильно. Если член не существует, программа даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке. Поскольку C# шаблоны могут объявлять ограничения и строго типизированы, таких потенциальных ошибок нет.
Между тем, компания Sun Microsystems® предложила дополнение к шаблонам в следующей версии языка программирования Java под кодовым названием "Tiger". Компания Sun выбрала реализацию, которая не требует изменения Виртуальной машины Java.
S>>И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline. WH>BCB это глюкалово страшное. Если все это перенести в дельфи то точно хана дельфе.
S>>При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них, WH>Ну некоторые и на С безболезненно пишут, а некоторые и на асме.
Еще на 1С и С++. Шутка, но многое писалось о других универсальных способах правда с потерей типизации и скорости но один на все. S>>но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя. WH>Вот я и говоряю что .НЕТ2 ждать надо.
А зачем ее ждать, кроме шаблонов, там копать неперекопать, а там и твои шаблоны подойдут. WH>>> Вот только очередного С++глюка от багландов мне и не хватало... WH>>>Я очень сильно удивлюсь если это будет нормальный компилятор. S>> "Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder WH>Я не знаю про J Builder но С++билдер это глюкалово сплошное.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, mihailik, Вы писали:
WH>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой.
M>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости.
Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
и солнце б утром не вставало, когда бы не было меня
Hello, Serginio1!
You wrote on Thu, 18 Sep 2003 11:37:33 GMT:
S> "Шаблоны С++ существенно отличаются от C# шаблонов. Там где C# шаблоны S> компилируются в IL, что приводит к тому, что для каждого типа значения S> специализация разумно происходит во время выполнения и однажды только S> для ссылочных типов, шаблоны С++ являются по существу макросом S> расширения кода, которые генерируют специализированный тип для каждого S> параметра типа, поставляемого в шаблон.
Ага, только вот совершенно забыли про template template parameters и non-type template parameters в С++ И про то, что шаблоны С++ умеют рекурсивные функции во время компиляции считать
S> Кроме того, когда компилятор С++ S> сталкивается с шаблоном, таким как Stack целых, он расширяет код шаблона S> в класс Stack, содержащий целые как собственный тип. В зависимости от S> того, является ли параметр типа типом значения или ссылочным типом, за S> исключением компоновщика, специально разработанного для уменьшения S> количества кода, каждый раз компилятор С++ создает специализированный S> класс, в результате чего возникает существенное увеличение размера кода S> в сравнении C# шаблонами.
Цирк... Где такой убогий компоновщик взять? Даже VC 6.0 понимает, что std::vector<long> и std::vector<int*> — одно и то же.
S> Более того, шаблоны С++ не могут определять ограничения.
Щаз.
S> Они могут S> только неявно задать ограничения, просто используя член, который должен S> или не должен принадлежать параметру типа. Если в параметре типа, S> который в итоге передается в шаблонный класс, этот член существует, S> программа будет работать правильно. Если член не существует, программа S> даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке.
Вот этот абзац применительно к C++ — полный бред. Если член не существует, программа просто не скомпилируется — о каких сбоях может идти речь?
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Serginio1, Вы писали:
M>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости. S> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
А разве есть другой серьезный компилятор, скажем, C++, в котором нет аналогичного менеджера? sbheap.c из VC, например, весит больше ста килобайт. И в любом случае выделение в стеке дешевле.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, WolfHound, Вы писали:
WH>>Здравствуйте, Serginio1, Вы писали:
WH>>>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace. S>>> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так. WH>>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет S> Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115
... skipped ...
S>Более того, шаблоны С++ не могут определять ограничения. Они могут только неявно задать ограничения, просто используя член, который должен или не должен принадлежать параметру типа. Если в параметре типа, который в итоге передается в шаблонный класс, этот член существует, программа будет работать правильно. Если член не существует, программа даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке. Поскольку C# шаблоны могут объявлять ограничения и строго типизированы, таких потенциальных ошибок нет.
... skipped ...
не стоит приписывать ограничения там где их быть не должно.
Если вникнуть в проблему, то все ограничения которые наложит на код c# будут следствием RTTI или методанных, которые НЕТом сгенерились для себя самого... так что тут С++ на порядок позволяет поднять гибкость и скорость по сравнению с c# — не нужны тебе ограничения ты о них и забыл... нужны прикрутил... а то что c# на порядок надежнее будет, так это скажеться на производительности... надо же куда-то Гигагерцы девать, а то застоялись без дела то...
скоро это будет выглядить приблизительно так: надо тормоза — пиши на НЕТ... увольте... не хочу так жить...
они своей надежностью воспитают еще одно поколение псведо-программеров, который будет считать что умение кинуть на формочку кнопку — делает его прогарммером...
на счет непонятных ошибок так ты ее и в НЕТ получиш... не смотрел как дебугер показывает часть кода от макрософта?
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Serginio1, Вы писали:
AD>>>8. Глобальная фабрика объектов. S>> Если это касается СОМ, то наследоваников от TComObjectFactory великое множество. WH>Ну и нафига этот геморой? В С++ все ATL делает. Ни разу фабрику ручками не писал. S>> Set (очень удобно с побитовыми операциями) WH>Ну и нафига это на уровне языка надо?
Очень удобно и просто. На ассемблере тоже BitBlt существует, но только на регистр. S>> Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов** WH>Ну интерфейсы еще куда ни шло, а вот строки и темболие варианты на уровне языка
Тоже очень удобно особенно с IDispatch итд. S>> Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As
WH>Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast.
В классы а не в интерфейсы. И работа с приведением через интерфейсы как в Net очень удобна.
S>> Динамические массивы (умные) WH>И чтоже в них такого умного чего не может std::vector? S>> Единая иерархия классов а также Is и As * WH>Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял.
Аналог dynamic_cast Is плиз ???
Единая информация об объекте. Не прав.
А вот структуры объекты действительно нужны, но с возможность боксинга в объект как в Net
S>> Явное разделение структур и объектов ( хотя записи с методами и не помешали)+- WH>А смысл?
Смысл в организации хранения данных. Если в С++ практически нет различия, то в Delphi все объекты ссылочные. Ну не знал, что реализованное в Net разграничение между объектами и структурами, а так же единая иерархия классов подвергаются сомнению. Глупые они там наверное, забыли WolfHound спросить. Не в обиду, может действительно правда.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
WH>>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет S> Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115
Ну и что ты этим постоянно сказать пытаешься? Для валью типов все тоже дублирование кода, а для ссылочных один код на всех. И что с того?
Мне чесно говоря вобще наплевать на то как это реализовано.
Мне нужно на уровне языка иметь возможности для реализации:
1)Обобщенных строготипизированых контейнеров. Это все на что способны .НЕТ шаблоны в том виде как они описаны в статье. Причем опять же не дотягивают до С++. Что касается ограничений то это они либо по незнанию либо террористы. В С++ можно тАкие проверки на параметры шаблона задать что шарпу и не снилось.
2)Обобщенные, адаптивные алгоритмы.
3)Мощьный codereusing
Причем 2 и 3 они только выглядат скромно, а на самом деле каждый из них будет побольше чем 1.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, AlexK, Вы писали:
AK>скоро это будет выглядить приблизительно так: надо тормоза — пиши на НЕТ... увольте... не хочу так жить...
Ну да Native компиляторы доживают свой век или уйдут в Linux, т.к. там уже на конкретной машине под камень и операционку компилируют, а не толко программы.
Живи по старому.... AK>они своей надежностью воспитают еще одно поколение псведо-программеров, который будет считать что умение кинуть на формочку кнопку — делает его прогарммером...
Хехе уже давно воспитаны на Васиках и 1С. AK>на счет непонятных ошибок так ты ее и в НЕТ получиш... не смотрел как дебугер показывает часть кода от макрософта?
AK>с++ — путь к силе духа! и ясности ума!
Программирование это не профессия, а Смысл Жизни!!!!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
WH>>Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast. S> В классы а не в интерфейсы. И работа с приведением через интерфейсы как в Net очень удобна.
А чем чисто абстрактный класс без данных отличается от интерфейса?
WH>>Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял. S>Аналог dynamic_cast Is плиз ???
typeid S> Единая информация об объекте. Не прав. S> А вот структуры объекты действительно нужны, но с возможность боксинга в объект как в Net
НАФИГА? Создал в стеке пусть лежит в стеке, создал в хипе пусть будет в хипе. Нафига это разделение?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Serginio1, Вы писали:
WH>>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой. M>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости. S> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
Пишем аллокатор на пуле и он что хочешь уделает. Вот только всегда ли оно надо?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Serginio1, Вы писали:
WH>>>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой. M>>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости. S>> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал. WH>Пишем аллокатор на пуле и он что хочешь уделает. Вот только всегда ли оно надо?
Не знаю как в M$ но МП в Delphi покрывает 99.9%. Хиппы, аллоки применяю только для списков для быстрого удаления всей кучи,или для связанных страниц большого размера например для отхода от изменяющейся непрерывной памяти и их проблемах с реалоками. Там МП не нужен. http://www.rsdn.ru/article/Delphi/memmanager.xml