![]() |
|
Модераторы: Daevaorn Страницы: (10) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Class "умееет" создавать объект, знает его размер, может выдать енумерацию полей и функци, а возможно даже прикрепить нужную функцию..
|
|||
|
||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, я себе это представлял так:
Добавлено через 14 минут и 11 секунд еще не уверен что нужны все эти типы:
может нужен только Value у которого должны быть методы для каста его внутреннего значения в нужный тип? Это сообщение отредактировал(а) boostcoder - 26.7.2011, 16:29 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Class не состоит в иерархии Object`а.. грубо говоря он служит посредником между строковым именем и созданием объекта...
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
2 boostcoder: попробуйте представить часть описания типов из AST в виде иерархии классов - это и будет основа для интроспекции в RTTIEx (a-la Class, точнее его энумераторы)
Когда это более менее устаканится, можно будет переходить к проектированию 2й части интерфейсов Class'а - операции по модификации/вызовам через эти энумераторы А уж к 3й части - созданию объектов, можно будет переходить когда первые 2 будут готовы. Иначе у вас получится знатная каша, а не reflection |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Я не знаю спецификацию AST из gcc поэтому точно написать не смогу. Но в общей форме, это должно быть как то так
В общем все эти классы представляют один узел в AST. Для доступа к атрибутам узла и потомкам узла в AST используются методы этих классов Методы Member::put_data/Member::get_data/Member::call_method используются для 2го уровня - манипуляция с member'ами объекта по имени Кстати, одной интроспекции недостаточно для стриминга произвольных классов. Стримить указатели, базируясь только на их типах увы не получится - проблемы распределения памяти под данные все равно придется решать вручную |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
xvr, спасибо. сначала попробую реализовать идею в терминах возможностей с++. а тогда уже и видно будет, что есть, а чего не хватает..
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
тут TypeKind - enum? Добавлено через 12 минут и 22 секунды xvr, еще типа Object не хватает? или так задумано? |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Если wishlist ещё открыт, то могу предложить автогенерацию оператора == по указанным полям.
(как-то не очень понятно получается... щаз попробую на примере)
эта pragma (не обязательно pragma... можно что угодно ) должна сгенерить след. код
если же эта прагма стоит внутри структуры/класса, то должен генериться оператор == с одним параметром -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Да
В других языках этот класс автоматически становится в предки любому классу. В С++ такого класса нет, и собственно интроспекция не требует его наличия. |
||||
|
|||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
mes, спасибо. Вы последний комментарий читали (от юзера garex) ?
Да и не хочется таскать boost только ради этого... плюс к тому скорость этого метода (там же в комментариях замеряли) раза в полтора (!!!) ниже. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
borisbn, принято. это будет самая простая задача
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ссылку дал, как информацию к размышлению, не более Это сообщение отредактировал(а) mes - 27.7.2011, 11:30 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |