以下方法有区别吗?
// approach 1
namespace std
{
template<>
void swap<Foo>(Foo& x, Foo& y) // note the <Foo>
{
x.swap(y);
}
}
// approach 2
namespace std
{
template<>
void swap(Foo& x, Foo& y)
{
x.swap(y);
}
}
当我尝试专门为我自己的字符串类型交换并注意到这swap<::string>
不起作用时,我偶然发现了这一点,但原因完全不同:)