Почему я могу определить частичную специализацию для шаблонов функций?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему я могу определить частичную специализацию для шаблонов функций?

Сообщение Anonymous »

Я знаю, что приведенный ниже код является частичной специализацией класса:

template
class MyClass {

};

// partial specialization: both template parameters have same type
template
class MyClass {

};


Также я знаю, что C++ не допускает частичную специализацию шаблона функции (разрешена только полная). Но означает ли мой код, что я частично специализировал свой шаблон функции для аргументов одного и того же типа? Потому что это работает для Microsoft Visual Studio 2010 Express! Если нет, то не могли бы вы объяснить концепцию частичной специализации?

#include
using std::cin;
using std::cout;
using std::endl;

template
inline T1 max (T1 const& a, T2 const& b)
{
return a < b ? b : a;
}

template
inline T const& max (T const& a, T const& b)
{
return 10;
}

int main ()
{
cout

Подробнее здесь: https://stackoverflow.com/questions/806 ... -templates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»