我以为会是这样,但我在标准库实现(gcc-4.8.2)中找不到这个。
为什么std::hash
不是已经专门用于std::reference_wrapper
?
#pragma once
#include <functional>
namespace std
{
template<typename T>
struct hash<reference_wrapper<T>>
{
size_t operator()(const reference_wrapper<T>& r) const
{
return std::hash<T>()(r.get());
}
};
}