![]() |
|
Модераторы: bsa |
![]()
|
|
| SolRus |
|
||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
1. Хочу сделать также как find определяет тип, но так как непойму что ставить в аргументе,
решил попробовать через шаблон код на liveworkspace или вот код:
как сделать чтоб в зависимости от типа выбиралось (nit->a или nit->s)? 2. вообщем хотелось бы дописать const
ps: но лучше бы вызывать без шаблона
|
||||||||||||
|
|||||||||||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
а по человечески можно сдормулировать задачу ?
перегрузка функций ? const_iterator |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
поддерживаю. но только не объясняйте что неполучается, а объясните чего хотите добиться.
type_traits? |
|||
|
||||
| SolRus |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
ну смотри, когда find вызываешь то ему по барабану какой тип у третьего аргумента, ну и уменя взависимости от типа должен вызываться, ну как в полиморфизме, только не наследование, а тип
ну делать перегрузку для каждого типа как то тупо, там всего то идет одно сравнение такого вида: nit->a / nit->s c const_iterator не получается, сама переменная же не в объекте и насколько понимаю, должна изменятся не влияя на объект, значение итератора в объекте list не хранится же....
а без буста никак? пойду читать что оно такое... :( Это сообщение отредактировал(а) SolRus - 28.5.2012, 21:09 |
||||||
|
|||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
нужные тебе шаблоны закодить - пять минут работы. так что да, можно и без буста а если твой компилятор умеет С++11 - то там все необходимые шаблоны есть. вот только я все равно не понял задачу.. Добавлено через 44 секунды ааа, понял сейчас.. |
|||
|
||||
| SolRus |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
надеюсь понял вот там где сбой должно идти корректное сравнение, т.е.
ps: чето 5 минут растянулось |
||||
|
|||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
если я все же правильно понял, то вотъ лекарство:
http://liveworkspace.org/code/886621e8694e...7125ae8a2ffe255 Добавлено через 2 минуты и 24 секунды пока писал, пришло в голову еще два понимания задачи. и того у меня их оказалось три. пришлось отсеивать два ненужных) Добавлено через 11 минут и 51 секунду
это уже сам впиши в selector<>::func() |
||||
|
|||||
| SolRus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
большое спасибо, boostcoder
на основе твоих специализаций шаблонов, сделал что нужно))
вопрос решен! |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
это тут зачем? *this у тебя и так наследует все публичные свойства/типы/методы предка. разве мой пример без всей этой лабуды непонятней был? |
|||
|
||||
| SolRus |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
точно, убрал
хы |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
я сказал с чем разбирался. ну пусть будет так, раз тебе так удобней. |
|||
|
||||
| SolRus |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
блин проглядел, что-то const ошибку дает:
я так понимаю const_iterator не может изменятся? мне нужно чтоб изменялся итератор, значит функция не может быть const? Это сообщение отредактировал(а) SolRus - 28.5.2012, 23:34 |
||||||
|
|||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |