標準ライブラリは 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;
}