Re[3]: dynamic_cast RTTI проблема
От: Logot Украина  
Дата: 14.05.10 14:46
Оценка:
Здравствуйте, Dsmover, Вы писали:

D>Не люблю я такие new: в одном месте new, а delete в совсем другом. Не хочу


D>Эту прогу пишут 4 человека. Кто-то напортачит потрогав мой код, и забыв убрать там delete в другом месте. а притензии ко мне будут


smart_ptr?
Re[9]: dynamic_cast RTTI проблема
От: Кодт Россия  
Дата: 14.05.10 15:56
Оценка:
Здравствуйте, Dsmover, Вы писали:

D> Я хочу передавать разные параметры, в одном случае просто число, иногда строка, иногда структура и т.д, смотря что ждет обработчик при каком событии. Сам класс (наследник от IParameter) является в принципе только хранилищем разного рода данных.


Тогда можно сосредоточиться на вариантных типах в отрыве от объектно-ориентированности (зачем нам лишние сущности?)
Если есть возможность и желание припахать буст, то см. boost::variant и boost::any
Если нужен стандартизованный интерфейс со сторонними модулями, то см. COM VARIANT и его С++ные обёртки (MSVC _variant_t, ATL::CComVariant)
Перекуём баги на фичи!
Re[10]: dynamic_cast RTTI проблема
От: Dsmover  
Дата: 14.05.10 16:01
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Dsmover, Вы писали:


D>> Я хочу передавать разные параметры, в одном случае просто число, иногда строка, иногда структура и т.д, смотря что ждет обработчик при каком событии. Сам класс (наследник от IParameter) является в принципе только хранилищем разного рода данных.


К>Тогда можно сосредоточиться на вариантных типах в отрыве от объектно-ориентированности (зачем нам лишние сущности?)

К>Если есть возможность и желание припахать буст, то см. boost::variant и boost::any
К>Если нужен стандартизованный интерфейс со сторонними модулями, то см. COM VARIANT и его С++ные обёртки (MSVC _variant_t, ATL::CComVariant)

boost нет желания тащить. я здесь не один в проекте, да и не хочется.
Какой COM и ATL, мы пишем в брутальном и волшебном мире Linux-a
Re[10]: dynamic_cast RTTI проблема
От: Dsmover  
Дата: 14.05.10 16:04
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Dsmover, Вы писали:


D>> Я хочу передавать разные параметры, в одном случае просто число, иногда строка, иногда структура и т.д, смотря что ждет обработчик при каком событии. Сам класс (наследник от IParameter) является в принципе только хранилищем разного рода данных.


К>Тогда можно сосредоточиться на вариантных типах в отрыве от объектно-ориентированности (зачем нам лишние сущности?)

К>Если есть возможность и желание припахать буст, то см. boost::variant и boost::any
К>Если нужен стандартизованный интерфейс со сторонними модулями, то см. COM VARIANT и его С++ные обёртки (MSVC _variant_t, ATL::CComVariant)

Да и Вариант это слабая тема. Она поддерживает все существующие типы (смотрел реализацию QVariant в сырцах QT). А мне надо "запихивать" разные структуры, классы, массивы объектов...
Re[11]: dynamic_cast RTTI проблема
От: Finder_b  
Дата: 14.05.10 16:18
Оценка:
Здравствуйте, Dsmover, Вы писали:

D>Да и Вариант это слабая тема. Она поддерживает все существующие типы (смотрел реализацию QVariant в сырцах QT). А мне надо "запихивать" разные структуры, классы, массивы объектов...


Может boost::any подойдет?
Re[12]: dynamic_cast RTTI проблема
От: Dsmover  
Дата: 14.05.10 16:28
Оценка:
Здравствуйте, Finder_b, Вы писали:

F_>Здравствуйте, Dsmover, Вы писали:


D>>Да и Вариант это слабая тема. Она поддерживает все существующие типы (смотрел реализацию QVariant в сырцах QT). А мне надо "запихивать" разные структуры, классы, массивы объектов...


F_>Может boost::any подойдет?


не хочу и не имею права тащить буст
Re[13]: dynamic_cast RTTI проблема
От: uzhas Ниоткуда  
Дата: 14.05.10 16:50
Оценка:
Здравствуйте, Dsmover, Вы писали:

F_>>Может boost::any подойдет?


D>не хочу и не имею права тащить буст

скопируй (переименовав буковки)
там простая реализация
Re[11]: dynamic_cast RTTI проблема
От: Кодт Россия  
Дата: 14.05.10 17:18
Оценка:
Здравствуйте, Dsmover, Вы писали:

D>Да и Вариант это слабая тема. Она поддерживает все существующие типы (смотрел реализацию QVariant в сырцах QT). А мне надо "запихивать" разные структуры, классы, массивы объектов...


Чую, что здесь какая-то архитектурная проблема...

Вообще, по-хорошему: либо функция твёрдо знает, с каким типом работает, и тогда незачем ветвиться; либо не знает и знать не желает — просто передаёт данные в коробке как есть.
Исключений не так уж много: это маршаллинг, сериализация, распечатка.
Перекуём баги на фичи!
Re[3]: dynamic_cast RTTI проблема
От: mike_rs Россия  
Дата: 17.05.10 13:00
Оценка:
Здравствуйте, ankf, Вы писали:

A>Кстати а зачем собственно клонировать сам объект. По идее нам нужно клонировать указатель.

A>Объект Parameter* он размещен же не в стеке, а в куче и этот указатель валиден для всех потоков в рамках процесса.

размещение объекта ТОЛЬКО в куче надо еще гарантировать специальным образом...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.