![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Заинтересовал такой вопрос - пусть есть шаблонная функция вида
template<typename RandomIterator> void func(RandomIterator i) {...} В ней легко и просто работать с типом, на который указывает итератор - typedef typename iterator_traits<RandIter>::value_type Value; и вперед... А как сделать функцию, которая возвращает значение этого типа? Что-то вроде template<typename RandomIterator> iterator_traits<RandIter>::value_type func(RandomIterator i) {...} ? Такое в принципе возможно? |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
||||
|
||||
| disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Спасибо, и правда работает! Никак не могу прочувствовать этот typename - где его надо ставить, где не надо... Прямо как артикли a и the в английском - тоже вечно они у меня не к месту Нет какого-то ПРОСТОГО до тупизны правила, чтоб даже до меня дошло? |
|||
|
||||
| Result |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 2 Всего: 5 |
Scott Meyers Effective C++ Third Edition, 55 Верных советов улучшить структуру и код ваших программ - правило 42. |
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Когда из(-под) шаблона выводится тип, нужно ставить typename.
-------------------- You're face to face With man who sold the world |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Билдерюга этого НЕ требует. Как-то я взял свой проект с билдера (не весь, а несколько исходников) и попытался откомпилировать в студии. Долго тупил, зачем от меня требуют typename...
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Студия почти русским языком говорит что надо делать:
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |