функция шаблонов частичная специализация?

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

template <typename t1, typename t2> class myclass {   … }; // partial specialization: both template parameters have same type template <typename t> class myclass<t,t> {   … }; 

также я знаю, что c не позволяет функция шаблонов частичная специализация (допускается только в полном объеме). но мой код означает, что я частично специализированный шаблон функции для одного/одной аргументами типа? потому что он работает для visual studio 2010 в экспресс! если нет, то не могли бы вы объяснить понятие частичной специализации?

#include <iostream>using std::cin;using std::cout;using std::endl;template <typename t1, typename t2> inline t1 max (t1 const& a, t2 const& b) {     return a < b ? b : a; } template <typename t> inline t const& max (t const& a, t const& b){    return 10;}int main (){    cout << max(4,4.2) << endl;;    cout << max(5,5) << endl;    int z;    cin>>z;}