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