Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
util
byte_units.h
Go to the documentation of this file.
1
// Copyright (c) 2025-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_UTIL_BYTE_UNITS_H
6
#define BITCOIN_UTIL_BYTE_UNITS_H
7
8
#include <
util/overflow.h
>
9
10
#include <stdexcept>
11
13
constexpr
size_t
operator
""
_MiB
(
unsigned
long
long
mebibytes
)
14
{
15
auto
bytes{
CheckedLeftShift
(
mebibytes
, 20)};
16
if
(!bytes || *bytes > std::numeric_limits<size_t>::max()) {
17
throw
std::overflow_error(
"MiB value too large for size_t byte conversion"
);
18
}
19
return
*bytes;
20
}
21
22
#endif
// BITCOIN_UTIL_BYTE_UNITS_H
overflow.h
CheckedLeftShift
constexpr std::optional< T > CheckedLeftShift(T input, unsigned shift) noexcept
Left bit shift with overflow checking.
Definition
overflow.h:67
Ticks
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.
Definition
time.h:73
Generated on Thu Apr 16 2026 09:42:38 for Bitcoin Core by
1.10.0