Why is {} used to access operator() in std::hash?

Viewed 998

While reading the examples of std::hash used for std::unordered_map, I noticed that the operator() function was being accessed by {}.

http://en.cppreference.com/w/cpp/utility/hash

result_type operator()(argument_type const& s) const
{
    result_type const h1 ( std::hash<std::string>{}(s.first_name) );
    result_type const h2 ( std::hash<std::string>{}(s.last_name) );
    return h1 ^ (h2 << 1); // or use boost::hash_combine (see Discussion)
}

What does the use of {} here represent?

2 Answers
Related