http://www.cse.yorku.ca/~oz/hash.html
auto hashed = [] (const char* str) consteval {
    std::size_t hash = 5381;
    while (*str != '\0') {
        hash = hash * 33 ^ *str++;
    }
    return hash;
};
// requires hashed() in compile-time context
enum class drinkHashes : long {
	beer = hashed("beer"),
    wine = hashed("wine"),
    water = hashed("water"),
};
std::array arr{hashed("beer"), hashed("wine"), hashed("water")};
 
 
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.