В основном мне нужно действительно хеширование строк во время компиляции в C ++. Меня не волнует специфика техники, могут быть шаблоны, макросы, что угодно. Все другие методы хэширования, которые я видел до сих пор, могут генерировать хеш-таблицу (например, 256 хешей CRC32) во время компиляции, а не настоящий хеш.
Другими словами, мне нужно это
printf("%d", SOMEHASH("string"));
для компиляции как (в псевдо-ассемблере)
push HASHVALUE
push "%d"
call printf
даже в сборках отладки, без операций во время выполнения над строкой. Я использую GCC 4.2 и Visual Studio 2008, и мне нужно, чтобы решение было в порядке для этих компиляторов (поэтому нет C ++ 0x).