| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Специализация шаблона |
| Автор: Pulse69 6.11.2007, 13:51 | ||
| Всем привет! Вот возник такой интересный вопрос: Если возвращаемое значение в функции сделать шаблонным, а потом написать специализацию этой функции, компилятор отказывается принимать такую конструкцию. Например, так
Справедливо для MSVC. Сознаюсь, особо нет времени копаться в стандарте, так что может ли кто-нибудь разъяснить мне почему этого нельзя сделать? |
| Автор: Lazin 6.11.2007, 14:27 | ||||
| Все правильно, перегружать возвращаемое значение нельзя. что компилятор должен делать если ты где нибудь в программе сделаешь так
К тому-же правильнее писать так:
|
| Автор: Alek86 6.11.2007, 14:30 | ||
компилятор, по-видимому не понимает, что такое CharType а я не помню, как оно правильно пишется.... вроде
|
| Автор: Pulse69 6.11.2007, 14:42 |
Вообще-то, я полагал, что перегрузка функций и специализация шаблонов - немного разные вещи. А вот за это спасибо! Действительно, ведь в параметрах после спецификации пишется явный тип, почему же в возвращаемом значении должно быть по другому! Alek86, так же спасибо за участие! |
| Автор: Alek86 6.11.2007, 16:18 |
| Lazin, по этому поводу хорошо написано у Майерса или Рихтера (я их путаю...) |
| Автор: Pulse69 7.11.2007, 00:42 | ||
Да, перегрузку функций по возвращаемому значению делать нельзя. А типизированный шаблон с другим возвращаемым значением - несколько иное. Во-первых, при вызове шаблонной функции всегда подразуемвается указание реальных типов. Если в параметрах типы не указываются, компилятор может применить свою супер-пупер дедукцию и догадаться, что там должно быть. В нашем случае случае, он не может определить тип возвращаемого значения, однако такая функция может быть вызвана с явным указанием типа.
Вот примерно это мне и надо было. Ещё раз всем спасибо! |
| Автор: Dims 9.11.2007, 03:53 |
| А что делают пустые угловые скобки? |
| Автор: JackYF 9.11.2007, 13:28 |
Указывают на то, что дальше будет специализация шаблонов. И не обязательно пустые, достаточно указать не все парамтры шаблона. Далее курить стандарт. |