![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
т.е. что бы было что-то подобное:
Добавлено через 12 минут и 48 секунд у меня объявлен шаблон с несколькими типами, и на эти несколько типов сделаны несколько переменных в нем, и на эти несколько переменных еще нужно привязать функции обработчики, которые устанавливаются в отдельные переменные, и если они не установлены то должны вызваться дефаултные обработчики. И между собой эти обработчики подобны по синтаксису - всякое копирование. И что бы не плодить множество определений обработчиков - и нужен такой шаблон. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
обернуть typedef в структуру..
|
|||
|
||||
| victor79 |
|
||||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
сначала не подумал, что можно обернуть ТАКИМ образом. Придется при установке и вызове добираться через точку, но это уже гораздо проще.
Добавлено @ 03:35 возможно так даже лучше будет объединять в блоки функции. типа:
Это сообщение отредактировал(а) victor79 - 26.7.2011, 03:38 |
||||
|
|||||
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
или еще вариант
|
|||
|
||||
| afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: 1 Всего: 4 |
По-нормальному это делается через функтор, то есть объект с переопределенным operator(). Такие объекты помимо прочего можно использовать вместе с STL. Пример есть на вики.
|
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
||||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
EnergoHokum, единственный минус - нельзя обнулить (вернее межно, но потом никак не проверишь, что там 0).
я понял под "не установлены" - равны 0 Это сообщение отредактировал(а) borisbn - 26.7.2011, 14:10 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
саму функцию я как раз то и не хочу заворачивать в структуру. Это лишние конструкции, которые уже не запаковать в библиотечные, и располагать их придется в основной структуре программы. Мне просто нужен тип типа ссылки на функцию и шаблонизированный. Это вроде как решил.
Вот если бы еще можно было делать статическими операторы определенные в структурах... Типа:
или другими способами определить диадические/монадические операторы с НАЗВАНИЕМ. Но это уже другой вопрос. (на момент написания поста линку про функцию одного аргумента еще не увидел, нужно подумать про это свойство) Это сообщение отредактировал(а) victor79 - 26.7.2011, 15:21 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
жесть. а чем operator() не устраивает ?
только лишними скобками ? -------------------- уупс. afiskon уже говорил это... просмотрел Это сообщение отредактировал(а) borisbn - 26.7.2011, 15:27 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
да в этом примере именно лишними скобками и не устраивает. Если выстраивать последовательности из 5-10 подряд операторов, то в скобках слишком путаешься. Это сообщение отредактировал(а) victor79 - 26.7.2011, 15:24 |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
victor79, вообще-то, так никто не делает. Обычно, делают так:
|
||||
|
|||||
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
размышляя над примером оператора () пришел к выводу В общем мой вариант :: мне нравиться больше, по крайней мере пока не начну юзать STL. |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
С этим медлить не стоит. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |