This is the story of an unexpected ABI break that I thought would be worth documenting.
At Avalanche we use a small class wrapping 32bit hashes called CHashString, it is basically just a wrapper around uint32_t and one should be able to treat it as a uint32_t in code except for operations that do not make sense on a hash-value.
Why would you want a class like this you might ask, well we use it for adding a const char* c_str()
-function that can be
used in logging and also we use it to add custom natvis-support in visual studio so that you can just hover a CHashString
and have a lookup of the hash-value performed.