![]() |
|
Модераторы: bsa |
![]()
|
|
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 1 Всего: 91 |
В каких случаях можно использовать шаблон как обычный метод или конструктор класса, опуская угловые скобки (не просто default value и <>, а вызов, который ничем внешне не отличается от вызова метода, макросы не предлагать) ?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Если это шаблон функции/метода и тип шаблонных параметров можно вывести из аргументов. Это сообщение отредактировал(а) mes - 15.12.2008, 22:57 |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 1 Всего: 91 |
Предположим есть 2 шаблона с одним именем и одинаковыми параметрами, но в каждом возвращается свой тип T, может ли компилер по l-value определить какой использовать ?
Так например
|
|||
|
||||
| J0ker |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
нет если темплетный тип будет возвращаемым типом, который нельзя вывести из аргументов - будет "could not deduce" - т.к. до того, как использовать функцию, компилятор ее должен инстанциировать если будет две темплетные функции с одинаковыми сигнатурами но разными возвращаемыми типами - будет "ambiguous call" - т.к. компилятор производит подбор функции после инстанциирования всех вариантов, не вникая какой тип возвращается, т.к. возвращаемый тип не входит в сигнатуру и перегрузку |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 1 Всего: 91 |
Я немного поискал, максимум что нашел это перегрузку типов в шаблонном классе. Но там есть свой жирный минус.
Интересно почему возвращаемое значение не включили в сигнатуру. Уже начали приходить в голову извращенные мысли на тему дефолтных значений на возврате, если ничего не возвращается, так например:
Ладно, вопрос решен. |
|||
|
||||
![]()
|
| Правила форума "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. |