LINUX.ORG.RU

История изменений

Исправление xperious, (текущая версия) :

inline constexpr std::uint32_t fnv1a(const char* str, std::uint32_t hash = 2166136261UL) {
    return *str ? fnv1a(str + 1, (hash ^ *str) * 16777619ULL) : hash;
}

int main() {
    std::string s = "bb";

    switch (fnv1a(s.c_str())) {
    case fnv1a("a"): std::cout << "A\n"; break;
    case fnv1a("bb"): std::cout << "B\n"; break;
    case fnv1a("ccc"): std::cout << "C\n"; break;
    };    
}

код не мой, отсюда: https://ru.stackoverflow.com/questions/7920/switch-%d0%b4%d0%bb%d1%8f-string

Исходная версия xperious, :