Как я могу хэшировать узлы Clang AST для использования в качестве ключа в неупорядоченной карте C ++? - PullRequest
0 голосов
/ 28 января 2019

Мне нужно связать внешнюю информацию с узлами Clang AST.Я хотел бы сделать это, по крайней мере, на данный момент, используя такие узлы как ключи в неупорядоченных картах (C ++).Однако типы узлов Clang AST не поддерживают хеш-функции, которые потребуются для использования их в качестве ключей на картах.Объявление неупорядоченной карты с типом ключа, например, clang :: VarDecl, вызывает следующую ошибку компилятора (g ++).

/usr/include/c++/7/bits/hashtable_policy.h:87:34: error: no match for call to '(const std::hash<clang::VarDecl>) (const clang::VarDecl&)' 

Узкий вопрос: есть ли способ использовать узлы Clang AST в качестве ключейв неупорядоченных картах в C ++?

Более широкий вопрос: каков наилучший способ создания машиночитаемого ассоциативного хранилища, связывающего узлы AST со связанной информацией?

...