Я знаю, что приведенный ниже код является частичной специализацией класса:
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