Мне нужно использовать строку в качестве идентификатора для получения какого-либо объекта. При реализации это во время выполнения, и работает хорошо. Но это делает статическую проверку типов невозможной по понятным причинам.
Я погуглил алгоритм вычисления хэш-суммы строки во время компиляции: C ++ хеширование строки времени компиляции с Boost.MPL .
Кажется, это идеальное решение моей проблемы, за исключением того, что sring, необходимый для алгоритма, должен быть разбит на куски по 4 символа, или по символам, по понятным причинам.
т.е. вместо обычной текущей записи идентификаторов, мне придется написать так:
hash_cstring<boost::mpl::string<'obje', 'ct.m', 'etho', 'd'>>::value
Это абсолютно непригодно для использования.
Вопрос в том, как правильно передать строку, такую как "object.method"
, в этот алгоритм?
Спасибо всем.