I am wondering when we can drop support for g++-8. All supported operating systems, except for CentOS Stream 8 offer a greater version:

* Ubuntu Focal: gcc 9 (https://packages.ubuntu.com/focal/gcc)
* Debian Bullseye: gcc 10 (https://packages.debian.org/bullseye/gcc)
* CentOS 8 Stream: gcc 8, with EOL of " May 31st, 2024 " (https://www.centos.org/centos-stream/)

The rationale for dropping it would be that there are currently occasional compile failures with perfectly valid C++-17 code, for example:

* `error: call to non-‘constexpr’ function ‘void __assert_fail(const char*, const char*, unsigned int, const char*)’ assert(false);` (https://godbolt.org/z/bxaMnfcsa)
{
        auto it = m_peerinfo.find(peer);
        if (it != m_peerinfo.end()) return it->second.m_total - it->second.m_requested - it->second.m_completed;
        return 0;
    }
    size_t Count(NodeId peer) const
    {
        auto it = m_peerinfo.find(peer);
        if (it != m_peerinfo.end()) return it->second.m_total;
        return 0;
    }
    
    size_t Size() const { return m_index.size(); }
    uint64_t ComputePriority(const uint256& txhash, NodeId peer, bool preferred) const
    {
        
        return uint64_t{m_computer(txhash, peer, preferred)};
    }
};
TxRequestTracker::TxRequestTracker(bool deterministic) :
    m_impl{std::make_unique<TxRequestTracker::Impl>(deterministic)} {}
TxRequestTracker::~TxRequestTracker() = default;
void TxRequestTracker::ForgetTxHash(const uint256& txhash) { m_impl->ForgetTxHash(txhash); }
void TxRequestTracker::DisconnectedPeer(NodeId peer) { m_impl->DisconnectedPeer(peer); }
size_t TxRequestTracker::CountInFlight(NodeId peer) const { return m_impl->CountInFlight(peer); }
size_t TxRequestTracker::CountCandidates(NodeId peer) const { return m_impl->CountCandidates(peer); }