CBlockIndex::CBlockIndex

CBlockIndex should not allow public copy construction because equality comparison via pointer is very common throughout the codebase, making use of copy a footgun. Also, use of copies do not have the benefit of simplifying lifetime considerations due to attributes like pprev and pskip, which are at risk of becoming dangling pointers in a copied instance.

Synopsis

Declared in <chain.h>

constexpr
CBlockIndex(CBlockIndex const& other) = default;

Description

We declare these protected instead of simply deleting them so that CDiskBlockIndex can reuse copy construction.

Parameters

NameDescription
otherThe entry to copy from.