1818#include < functional>
1919
2020// / The comparator for std::map<evmc_address, ...>.
21+ EVMC_DEPRECATED
2122inline bool operator <(const evmc_address& a, const evmc_address& b)
2223{
2324 return std::memcmp (a.bytes , b.bytes , sizeof (a.bytes )) < 0 ;
2425}
2526
2627// / The comparator for std::map<evmc_bytes32, ...>.
28+ EVMC_DEPRECATED
2729inline bool operator <(const evmc_bytes32& a, const evmc_bytes32& b)
2830{
2931 return std::memcmp (a.bytes , b.bytes , sizeof (a.bytes )) < 0 ;
3032}
3133
3234// / The comparator for equality.
35+ EVMC_DEPRECATED
3336inline bool operator ==(const evmc_address& a, const evmc_address& b)
3437{
3538 return std::memcmp (a.bytes , b.bytes , sizeof (a.bytes )) == 0 ;
3639}
3740
3841// / The comparator for equality.
42+ EVMC_DEPRECATED
3943inline bool operator ==(const evmc_bytes32& a, const evmc_bytes32& b)
4044{
4145 return std::memcmp (a.bytes , b.bytes , sizeof (a.bytes )) == 0 ;
4246}
4347
4448// / Check if the address is zero (all bytes are zeros).
49+ EVMC_DEPRECATED
4550inline bool is_zero (const evmc_address& address) noexcept
4651{
47- return address == evmc_address{};
52+ constexpr auto zero = evmc_address{};
53+ return std::memcmp (address.bytes , zero.bytes , sizeof (zero.bytes )) == 0 ;
4854}
4955
5056// / Check if the hash is zero (all bytes are zeros).
57+ EVMC_DEPRECATED
5158inline bool is_zero (const evmc_bytes32& x) noexcept
5259{
53- return x == evmc_bytes32{};
60+ constexpr auto zero = evmc_bytes32{};
61+ return std::memcmp (x.bytes , zero.bytes , sizeof (zero.bytes )) == 0 ;
5462}
5563
5664// / Parameters for the fnv1a hash function, specialized by the hash result size (size_t).
@@ -98,7 +106,7 @@ namespace std
98106{
99107// / Hash operator template specialization for evmc_address needed for unordered containers.
100108template <>
101- struct hash <evmc_address>
109+ struct EVMC_DEPRECATED hash<evmc_address>
102110{
103111 // / Hash operator using FNV1a.
104112 size_t operator ()(const evmc_address& s) const noexcept
@@ -109,7 +117,7 @@ struct hash<evmc_address>
109117
110118// / Hash operator template needed for std::unordered_set and others using hashes.
111119template <>
112- struct hash <evmc_bytes32>
120+ struct EVMC_DEPRECATED hash<evmc_bytes32>
113121{
114122 // / Hash operator using FNV1a.
115123 size_t operator ()(const evmc_bytes32& s) const noexcept
0 commit comments