![]() |
|
Модераторы: Daevaorn Страницы: (11) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
от этого зависит регистрацию переложить на шаблоны в компилтайм, или же осуществлять ее в рантайме.. со статическим контролем не получится без изменения кода, просто его можно организовать так, чтоб не лезле в ваш, а просто добавляли свои исходники.. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
так все ж в каком направлении думать ? для меня например желательно знать заранее.. если остановитесь на статическом, то Александреску разбирает в одной из своих книг (в какой сейчас не помню) генерацию визитеров по списку типов.. от списка типов уйти не получится и поэтому перекомпиляция при изменении будет неизбежна.. Это сообщение отредактировал(а) mes - 11.11.2011, 15:32 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
угу тем более что библиотека для работы с полиморфными объектами.. Добавлено через 2 минуты и 35 секунд но тогда надо будет ввести свою систему типов.. (или просто uid, если предполагается взаимодействие выходящее за границы приложения.. например по сети) |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
т.е. query_interface? Добавлено через 1 минуту и 47 секунд
нет, этого не предполагается. |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
это можно, да. но это уже не полиморфизм, а огромный switch. если бы он Вам нравился, темы не было б С++ статически типизирован, а dynamic_cast не добавляет динамичности в полной мере, эт только костыль поможет. почитайте. интересно. только сами не захотите использовать, т.к. слишком громоздко. если кратко, то АОП решает те же задачи, что и ООП, а также те, которые он не в состоянии решить (и добавляет проблем которых раньше не было для приспособления идеи к существующим языкам существуют пакеты, суть которых сводится к языковым расширениям, которые компилируются в код на целевом языке. плюс в том, что на расширении функционал реализовать гораздо проще. например, добавление аспекта (например, функции) делается элементарно, а в итоговой программе на целевом языке исправляются все классы, куда ее нужно добавить. почитайте сами, это слишком обширная тема для одного поста Йес!! хорошо бы иметь больше информации об архитектуре проекта, о том как фреймворк связывается с кодом пользователей. Если пользователи просто пишут расширения к откомпилированному коду, видимо без query-interface в каком-то его виде не обойтись. изобретёте еще один COM. когда я приводил в пример boost::operators, имелось в виду, что проект компилируется целиком, т.е. ваш код и пользовательский Добавлено через 2 минуты и 47 секунд а, еще... если пользователи добавляют расширения к откомпилированному коду в виде откомпилированного кода, т.е. интерфейс предопределен и неизменен, то никакой АОП не поможет. точнее, он поможет Вам как разработчику при внесении изменений/расширений в проект, но с точки зрения пользователей ничего не изменится |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Дело в том, что на данный момент никто не с чем ничего не связывает, если кому-то что-то нужно, это делаем мы. Вот мы и хотим взвалить ненужную нам работу на чужие плечи. А как - это уже другое дело. У них есть заголовочные файлы и библиотеки, будет считать исходников у других нету, мы выдаем им уже готовый фреймворк. Добавлено через 31 секунду Примерно так оно и должно быть. Добавлено через 57 секунд
Вот именно |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
http://liveworkspace.org/code/045bcd682434...0273f990d385bb7 Добавлено через 3 минуты и 40 секунд a, b пользовательские типы.. пользователь также должен до использования своих типов проивести регистрацию (init).. писалась на скорую руку, чтоб передать идею.. также использовал голый ид, но можно это приукрасить, если нижно.. Добавлено через 5 минут и 44 секунды пример - база для реализации алгоритмов copy/paste.. Добавлено через 10 минут и 54 секунды правда для примера сериализация выбрана немножко неудачно, так как ей должен обладать по идеи любой объект, что предполагает ее простой виртуальной функцией.. но вот например рендеры, тем более что их может быть несколько, могут иметь такой подход.. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
угу. подобное решение было первой мыслью после прочтения темы, но это уже внеязыковые средства. как, впрочем, и query-interface. но вообще - хороший способ, поддержам Добавлено через 3 минуты и 51 секунду это АОП-way |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а у С++ вообще с динамикой плохо, хорошо что руки не связывает и позволяет выкрутится обходными вариантами.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну тогда можно притянуть его и сюда
разгрузив через список типов.. где то так : http://liveworkspace.org/code/0532d48b65fd...f0e78f2ba25ee9f Это сообщение отредактировал(а) mes - 11.11.2011, 17:52 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
azesmcar, медитирую над этим примером
пытаюсь понять откуда оно возникло. вот собственный пример с контекстным меню мне ясен, понятны средства его реализации. насколько это близко к вашим "нехорошим вещам", которые делаются с объектами? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
mes
Просматриваю, немного не нравиться то, что функции по идее должны быть глобально видимыми, позже попробую сгруппировать глобальные функции по классам. не понял вопроса. что откуда возникло? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
с чего это взяли ? Добавлено через 44 секунды не понятно что делает выражение, процитированное baldina Добавлено через 2 минуты и 37 секунд сформулируйте требования, попробую отразить в коде Добавлено через 3 минуты и 31 секунду функции это вы o serialize или o serialize_fn<T> ? Добавлено через 4 минуты и 45 секунд глобальными или глобально видимыми ? |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |