![]() |
Модераторы: Daevaorn Страницы: (89) « Первая ... 69 70 [71] 72 73 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
сейчас залью.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
что-то не понимаю..правда ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
что то типо этого ![]() Добавлено через 11 минут и 49 секунд я забыл про "снятели/добавители константности", поэтому был слегка удивлен,что Вы туда залить хотите.. Добавлено через 13 минут и 17 секунд проапдатился, теперь не могу читать исходники..из за различий в переносе строки ![]() придется искать подходящий редактор, чтоб туда-сюда не конвертить Это сообщение отредактировал(а) mes - 20.12.2010, 22:21 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
![]() Добавлено @ 16:28 для подсказки : условно:
Это сообщение отредактировал(а) mes - 21.12.2010, 16:30 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
я так понимаю Вы схему не до конца понимаете..
есть класс у него есть таблица методов.. адресом ячейки является тип импульса, тип содержимого определяется типами набора аргументов импульса, а содержимое (адрес метода) пользователем.. тогда имея таблицу, и указатель на объект, для любого типа импульса мы можем вызвать метод обработчик.. Вышеприведенный кусок кода нужен для того. чтоб определить сигнатуру метода обработчика, на основе типов класса и импульса.. ограничение выражено тем, что каждый параметр метода-обработчика, должен иметь тип const&. Добавлено через 1 минуту и 43 секунды я полагаю Вас еще путает диспатчеризация в рантайме.. на этом этапе все связано на этапе компиляции.. зависимость от рантайма за этой областью.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
схему? схему того как Вы это представляете? - нет. реализация на данный момент понятна как никогда. просто посудите сами. Вы, не будучи телепатом, и не зная моих мыслей, что бы поняли из этого?:
т.е. сама задача понятна. не понятно где Вы предполагаете это должно быть реализовано? в реализации пользователя? в строке примера приведенного Вами? в самой дисколи? т.е. я, помимо того чтоб думать о задаче, должен проанализировать все ваши комментарии, учесть все что говорилось об этом раньше(если говорилось), и реализовать задачу имея в распоряжении только собственные предположения. представили? вакуум ощущаете? а я его ощущаю на протяжении всей темы. о чем Вам говорил не раз. именно по этому, большую часть темы я нахожусь в подвешенном состоянии, что меня естественно не радует ![]() это не придирки, скорее, просьба осознать то, что то, что очевидно для Вас, совсем не обязано быть очевидно для меня ![]() что дальше делаем? дайте мне чего-то накодить. Это сообщение отредактировал(а) boostcoder - 22.12.2010, 08:50 |
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну насчет мыслей.. как какая приходит я сразу отписываюсь в теме, другое дело, что может не очень ясно - но для этого есть уточняющие вопросы, которых кстати на удивление очень мало, что создает некоторые сомнения.. ну вот эта строчка :
была взята из недавнего кода, на который Вы отписались, что прочитали и разобрались.. учитывая что сохранен комментарий, и сказано что это таблица, я думал не трудно было придти к заключению , что это cls_table.. так как других таблиц не было.. не думаю, что тут непонятно, что в шаблон передается impulse::args_mpl_seq_t, где тип конкретного импульса (Im) является одним из последовательности переданной таблице.. но.. если предположить что, непонятна связь между импульсом и таблицей, то вполне согласен, непонятночто вообще требуется.. но для этого я предлагаю регулярно задавать вопросы.. потому что без вопросов, на что сделать акцент, для улучшения понимания, я не знаю..
я это осознаю.. поэтому и переспрашиваю, есть ли где трудности, ну вот в частности : ну так сейчас по плану все та же таблица.. ![]() сейчас приведу код еще раз ![]() P.S. я подправил немного импульс, теперь в нем определены два типа : args_normalized_t (вместо args_mpl_seq_t) и (старый)args_fused_t (получаеммый через args_normalized_t) Добавлено через 6 минут и 8 секунд вот опорный код, который надо приводить в порядок : http://liveworkspace.org/code/c76453b89e92...1dfeccde6edd23c Добавлено через 9 минут и 24 секунды вот набросок инвокинга : http://liveworkspace.org/code/995850590218...1de39a52ae2533c с помощью которого можно, зная импульс и таблицу, можно произвести вызов.. |
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
немного теории.. есть два (нужных нам) варианта подхода к составлению таблицы :
obj_table - где будет хранить полные замыкания, или функции.. то есть вызов происходит без наличия this.. cls_table - который хранить функции, в виде методов, то есть наличие this обязательно.. скорей всего для таблицы префикс не нужен..достаточно просто table, так как всего лишь контейнер, а способ хранения задается типом хранимого элемента... т.е cls_/ obj_method.. (в коде как cls_item..) Добавлено через 4 минуты и 20 секунд исходя из этого таблица должна принимать последовательность, и один шаблонный параметр ячейки, который будет типизироваться элементом.. Добавлено через 5 минут и 34 секунды но для начала нам нужно построить шаблон ячейки.. Добавлено через 10 минут и 25 секунд ячейка характеризуется: 1. тип вызова (cls_ / obj_ ) 2. для cls_ типом параметра this 2. набором аргументов (на основе impulse::args_normalized ) 3. способом хранения.. (указатель, буст_функция, буст_сигнал) Добавлено через 12 минут и 26 секунд пункт я явно разделяет на два разноименных шаблона (как впрочем и предполагалось изначально) для начала разберем только cls_.. второй (obj_) более простой и будет выполнен по подобию.. Это сообщение отредактировал(а) mes - 22.12.2010, 10:15 |
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
итак имеем :
Добавлено @ 10:38 тестовое применение для наглядности:
Добавлено @ 10:46 идем дальше :
появился invoke_detail::cls_method - эта структура, которая добавит const_ref к каждому элементу последовательности (Im::args_normalized) запушфронтит That и void и сделает метод.. Добавлено @ 10:47 теперь информации достаточно ? для кодирования таблицы.. если нет жду вопросов.. ![]() Это сообщение отредактировал(а) mes - 22.12.2010, 10:48 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |