Уточнение шаблона C ++ с участием другого typename? - PullRequest
0 голосов
/ 21 марта 2011

Без использования Boost, как я могу написать такую ​​функцию, как:

template<typename T>
void myFunc(T t)
{
   ...
}

template<>
void myFunc(someclass<T> t)
{
    myFunc(t.get());
}

Обновление: возможно, я проанализировал это. Я был смущен, когда я хотел оригинал

template<typename T>
void myFunc(T t)
{
   ...
}

для работы с вектором. Полагаю, я запутался, потому что в специализациях шаблонных функций вы опускаете аргумент typename, и я подумал, что мне по-прежнему нужен T.

Похоже, один из ответов уже работает.

1 Ответ

2 голосов
/ 21 марта 2011

Не уверен, почему вы связываете Boost с этим.В любом случае:

Это не сработает, поскольку T здесь не существует.

template<>
void myFunc(someclass<T> t);

Что вы, вероятно, имели в виду:

template < typename T >
void myFunc(someclass<T> t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...