Основываясь на tutorial,синтаксиса функция Явной специализации
// Example 2: Explicit specialization
//
template<class T> // (a) a base template
void f(T){;}
template<class T> // (b) a second base template, overloads (a)
void f(T*){;} // (function templates can't be partially
// specialized; they overload instead)
template<> // (c) explicit specialization of (b)
void f<>(int*){;} // ===> Method one
Я также проверить следующее с VS2010 SP1 без какого-либо предупреждения.
template<> // (c) alternative
void f<int>(int*){;} // ==> Method two
Вопрос> Какой способ рекомендуется способ, основанный на стандарте C++? Метод один или второй?
Как вы можете видеть, ключ отличается от метода одного и методы два заключается в следующем:
template<>
void f<>(int*){;} // ===> Method one
template<>
void f<int>(int*){;} // ===> Method two
^^^
на основе учебника, мы должны написать следующую простую старую функцию вместо:
void f(int*){;}
Но это НЕ вопрос, который я задаю :)
Спасибо
В чем вопрос? –
Я обновил свой вопрос. – q0987
Первый метод как шаблон <> void f <> (int *) 'vs method two как' template <> void f (int *) '? –
Griwes