Туда передаётся параметр шаблонный. Но одного его не хватает чтобы изменить поведени в зависимости от типа.
Нужно ещё как то узнать что за тип и в зависимости от этого выполнить тот или другой код. Есть что-то типа "typeof" и.т.п.
Или нужно передавать ещё булевый параметр в шаблон? Но он может быть не тот что типовый по ошибке. Как-то не очень красиво получается.
Может есть правильный выход?
Здравствуйте, jassix, Вы писали:
J>У меня есть шаблонная функция.
J>Туда передаётся параметр шаблонный. Но одного его не хватает чтобы изменить поведени в зависимости от типа. J>Нужно ещё как то узнать что за тип и в зависимости от этого выполнить тот или другой код. Есть что-то типа "typeof" и.т.п.
полная специализация, перегрузка функции, boost::enable_if (disable_if).
boost::enable_if в частности позволяет добиться подобия частичной специализации для фунций.
Здравствуйте, jassix, Вы писали:
J>У меня есть шаблонная функция.
J>Туда передаётся параметр шаблонный. Но одного его не хватает чтобы изменить поведени в зависимости от типа. J>Нужно ещё как то узнать что за тип и в зависимости от этого выполнить тот или другой код. Есть что-то типа "typeof" и.т.п. J>Или нужно передавать ещё булевый параметр в шаблон? Но он может быть не тот что типовый по ошибке. Как-то не очень красиво получается. J>Может есть правильный выход?
Для решения этой задачи тебе нужно освоить такие темы, как перегрузка функций и специализация шаблонных функций. Для относительно простых случаев должно хватить. В более сложных случаях шаблоны функций приходится реалиовывать через вспомогательные шаблоны классов, для которых помимо полной возможна также частичная специализация.
--
Не можешь достичь желаемого — пожелай достигнутого.