diff options
author | Andrew Chow <github@achow101.com> | 2023-02-06 13:56:32 -0500 |
---|---|---|
committer | Andrew Chow <github@achow101.com> | 2023-02-06 13:56:51 -0500 |
commit | 52ddbd52f980c0e733682401056d8131f1d513c0 (patch) | |
tree | 44df731e2e1ba34dea80e289e65de49800b47741 /src/index/base.cpp | |
parent | aff75463e2c75a7a969cdaa535c7be05fd146420 (diff) | |
parent | 935acdcc79d1dc5ac04a83b92e5919ddbfa29329 (diff) |
Merge bitcoin/bitcoin#26345: refactor: modernize the implementation of uint256.*
935acdcc79d1dc5ac04a83b92e5919ddbfa29329 refactor: modernize the implementation of uint256.* (pasta)
Pull request description:
- Constructors of uint256 to utilize Span instead of requiring a std::vector
- converts m_data into a std::array
- Prefers using `WIDTH` instead of `sizeof(m_data)`
- make all the things constexpr
- replace C style functions with c++ equivalents
- memset -> std::fill
This may also be replaced by std::memset, but I think that std::fill is more idiomatic of modern c++ and readable.
- memcpy -> std::copy
Note: In practice, implementations of std::copy avoid multiple assignments and use bulk copy functions such as std::memmove if the value type is TriviallyCopyable and the iterator types satisfy LegacyContiguousIterator. (https://en.cppreference.com/w/cpp/algorithm/copy)
This could also likely be replaced by std::memcpy, but as said above, I believe the using std::copy is the more c++ way to do anything and is almost guaranteed to compile to the same asm
- memcmp -> std::memcmp
ACKs for top commit:
achow101:
ACK 935acdcc79d1dc5ac04a83b92e5919ddbfa29329
hebasto:
Approach ACK 935acdcc79d1dc5ac04a83b92e5919ddbfa29329.
aureleoules:
reACK 935acdcc79d1dc5ac04a83b92e5919ddbfa29329
john-moffett:
ACK 935acdcc79d1dc5ac04a83b92e5919ddbfa29329
stickies-v:
Approach ACK 935acdcc7
Tree-SHA512: 4f1ba54ff2198eea0e505d41e73d552c84c60f6878d5c85a94a8ab57f39afc94ef8d79258e7afd01fa84ec2a99f4404bb877eecd671f65e1ee9273f3129fc650
Diffstat (limited to 'src/index/base.cpp')
0 files changed, 0 insertions, 0 deletions