Bitcoin Core
27.99.0
P2P Digital Currency

Data structure storing a fee and size, ordered by increasing fee/size. More...
#include <feefrac.h>
Public Member Functions  
FeeFrac () noexcept  
Construct an IsEmpty() FeeFrac. More...  
FeeFrac (int64_t f, int32_t s) noexcept  
Construct a FeeFrac with specified fee and size. More...  
FeeFrac (const FeeFrac &) noexcept=default  
FeeFrac &  operator= (const FeeFrac &) noexcept=default 
bool  IsEmpty () const noexcept 
Check if this is empty (size and fee are 0). More...  
void  operator+= (const FeeFrac &other) noexcept 
Add fee and size of another FeeFrac to this one. More...  
void  operator= (const FeeFrac &other) noexcept 
Subtract fee and size of another FeeFrac from this one. More...  
Static Public Member Functions  
static std::pair< int64_t, uint32_t >  MulFallback (int64_t a, int32_t b) noexcept 
Fallback version for Mul (see below). More...  
Public Attributes  
int64_t  fee 
int32_t  size 
Static Public Attributes  
static constexpr auto  Mul = MulFallback 
Friends  
FeeFrac  operator+ (const FeeFrac &a, const FeeFrac &b) noexcept 
Sum fee and size. More...  
FeeFrac  operator (const FeeFrac &a, const FeeFrac &b) noexcept 
Subtract both fee and size. More...  
bool  operator== (const FeeFrac &a, const FeeFrac &b) noexcept 
Check if two FeeFrac objects are equal (both same fee and same size). More...  
std::weak_ordering  FeeRateCompare (const FeeFrac &a, const FeeFrac &b) noexcept 
Compare two FeeFracs just by feerate. More...  
bool  operator<< (const FeeFrac &a, const FeeFrac &b) noexcept 
Check if a FeeFrac object has strictly lower feerate than another. More...  
bool  operator>> (const FeeFrac &a, const FeeFrac &b) noexcept 
Check if a FeeFrac object has strictly higher feerate than another. More...  
std::strong_ordering  operator<=> (const FeeFrac &a, const FeeFrac &b) noexcept 
Compare two FeeFracs. More...  
void  swap (FeeFrac &a, FeeFrac &b) noexcept 
Swap two FeeFracs. More...  
Data structure storing a fee and size, ordered by increasing fee/size.
The size of a FeeFrac cannot be zero unless the fee is also zero.
FeeFracs have a total ordering, first by increasing feerate (ratio of fee over size), and then by decreasing size. The empty FeeFrac (fee and size both 0) sorts last. So for example, the following FeeFracs are in sorted order:
A FeeFrac is considered "better" if it sorts after another, by this ordering. All standard comparison operators (<=>, ==, !=, >, <, >=, <=) respect this ordering.
The FeeRateCompare, and >> and << operators only compare feerate and treat equal feerate but different size as equivalent. The empty FeeFrac is neither lower or higher in feerate than any other.

inlinenoexcept 

inlinenoexcept 

inlinedefaultnoexcept 

inlinenoexcept 

inlinestaticnoexcept 

inlinenoexcept 

inlinenoexcept 

staticconstexpr 