Итак, библиотека, которую я использую, имеет перечисление (скажем, оно называется LibEnum
). Мне нужно иметь std::unordered_set
из LibEnum
, но я получаю ошибку компиляции, что для него нет специализированного std::hash
. Я мог бы легко написать это и просто вернуть число значений (первый элемент равен 0, второй 1 и т. д.), но где именно я должен указать эту специализацию и как она должна выглядеть? Я не могу изменить исходники библиотеки.
enum LibEnum { A, B, C, D};
std::unordered_set <LibEnum> mySet;
//need std::hash for LibEnum
//how should it look like?
enum
, в этом документе описаны расширенияenum
, представленные в С++ 11 (на всякий случай, если вы не в курсе). - person hmjd   schedule 11.02.2013