The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Утвержден финальный черновой вариант стандарта C++0X"
Отправлено dmi3s, 28-Мрт-11 17:20 
> В С++ много чего есть,

Там есть много кусочков всего.

> но там все это через многоэтажные шаблоны,
> макросы и т.д. А хочется прямого естественного способа.
> Smalltalk, Haskell, Forth, K/J  - это не си-подобные языки, и впихивать
> их никто не предлагает. А вот например концепция сообщений из ObjC,
> сигналов/слотов qt и dynamic c#4 имеют общую базу, и их неплохо
> бы объединить в новом языке.

Только вот для полноценной реализации signal/slot требуется не только сборщик мусора (qt в понятие "полноценный" не входит), но и нормальная объектная модель (все obejct, с чего начинался Smalltalk, а ныне - Java/C# и множество других). Любой пук - виртуальность, а то и dynamic_cast.
Расплата за такой подход - скорость, а ею плюсы пожертвовать никак не могут (что тогда останется?).

> Интроспекция - да, на современном С++ ее можно делать извращенными макросами -
> но почему не сделать нормально?

Не надо макросов - это отдельная и противная тема. Есть boost::type_traits, в C++ 0x есть std::type_traits для статики/метапрограммирования. Для динамики требуется много памяти под код и данные, что непозволительно для плюсов.

> Автоматическая и ручная сборка мусора вполне себе сочетаются для разных видов объектов.
> Никого ведь не смущает, что сочетаются стевовые переменные и переменые на
> куче? Я бы оставил ручное управление памятью для специальных случаев (все-же
> С++ низкоуровневый язык) и ввел синтаксис для выделения памяти со сборкой
> мусора.

Все перечисленное уже есть в C++/CLI. Проблема в том, что от этого диалекта блюют даже поклонники C++. Мертвенький такой ребеночек у МС вышел.
Autorelease Pools оказался значительно более живой идеей, но он уже есть. И возможности плюсов там, как я понимаю, не нужны.

> Ну и лямбды с делегатами - даже в C# последнем не раскрыли
> всех возможностей этого средства.

Тема лямбд была полностью раскрыта в Lisp-е около полувека тому назад.

> А для совместимости с С++ вполне можно
> сделать специальный класс с ограниченным функционалом.

Писали бы сразу - костыль. Интересный, конечно, подход. Примерно как в C передвать классы через структуры. И дергать виртуальные фунции копаясь в vtbl. А как удалять такие объекты, я вот с ходу даже не придумаю.

> Если нужно больше - ну
> смени расширение файла и устрани несоответствия, как делали раньше при переходе
> с си на си++...

Да, расширение - это наше все. Только вот я бы кардинально сменил язык реализации, т.е. просто бы отказался бы от плюсов, если бы мне потребовалась та же интроспекция или активная работа с сигналами.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру