mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-23 14:10:15 +01:00
Added static_assert to check that base_blob is using whole bytes.
Prior to this commit it was possible to create base_blobs with any arbitrary amount of bits, like base_blob<9>. One could assume that this would be a valid way to create a bit field that guarantees to have at least 9 bits. However, in such a case, base_blob would not behave as expected because the WIDTH is rounded down to the closest whole byte (simple integer division by 8). This commit makes sure that this oddity is detected and blocked by the compiler.
This commit is contained in:
@@ -22,6 +22,7 @@ class base_blob
|
||||
{
|
||||
protected:
|
||||
static constexpr int WIDTH = BITS / 8;
|
||||
static_assert(BITS % 8 == 0, "base_blob currently only supports whole bytes.");
|
||||
std::array<uint8_t, WIDTH> m_data;
|
||||
static_assert(WIDTH == sizeof(m_data), "Sanity check");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user