标准库将 std::hash 实现为专门用于不同类型的模板结构。它是这样使用的:
#include <iostream>
#include <functional>
int main()
{
std::hash<int> hasher;
std::cout << hasher(1337) << std::endl;
return 0;
}
我的问题是这种设计选择背后的原因是什么。为什么它没有作为模板函数实现并像这样使用:
#include <iostream>
#include <functional>
int main()
{
std::cout << std::hash<int>(1337) << std::endl;
return 0;
}