08/01/27 13:21:55
template <typename T> //primary template
class Test {
public:
enum { Result = 1 };
};
template <typename T> //T const に対する partial specialization
class Test<T const> {
public:
enum { Result = 2 };
};
template<typename T>
void f(T t)
{
cout << Test<T>::Result << endl;
}
int main()
{
int i = 1;
f(i); // ① --> 1が表示される
int const j = 1;
f(j); // ② --> 1が表示される
}