diff --git a/src/cuckoocache.h b/src/cuckoocache.h --- a/src/cuckoocache.h +++ b/src/cuckoocache.h @@ -249,31 +249,30 @@ * @returns std::array of deterministic hashes derived from e */ inline std::array compute_hashes(const Element &e) const { - return { - {uint32_t( - (hash_function.template operator()<0>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<1>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<2>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<3>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<4>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<5>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<6>(e) * uint64_t(size)) >> - 32), - uint32_t( - (hash_function.template operator()<7>(e) * uint64_t(size)) >> - 32)}}; + return {{(uint32_t)(((uint64_t)hash_function.template operator()<0>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<1>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<2>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<3>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<4>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<5>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<6>(e) * + (uint64_t)size) >> + 32), + (uint32_t)(((uint64_t)hash_function.template operator()<7>(e) * + (uint64_t)size) >> + 32)}}; } /* end