Можно ли использовать std :: hash для хеширования указателей на функции?
Может ли C ++ 11std::hash
тип будет использоваться для хеширования указателей на функции? Существуетhash
частичная специализация определяется как
template <typename T> struct hash<T*>;
но поскольку указатели на функции отличаются от других типов указателей в C ++ (например, их нельзя привести кvoid*
), Я не уверен, безопасно ли использовать его для таких типов, какint(*)()
или жеvoid(*)(int, int)
.
Это разрешено? Есть ли конкретная формулировка в новой спецификации ISO, которая поддерживает или опровергает это?
Спасибо!