https://github.com/bitcoin/bitcoin/blob/68f3c7eb080e461cfeac37f8db7034fe507241d0/src/prevector.h#L152-L158

I'm opening an issue as its fix is too tiny to become a pull request.

Can be solved by renaming the struct to
```c
     struct indirect_contents { 
         size_type capacity; 
         char* indirect; 
     }; 
```
{
    bool is_snapshot = !snapshot_blockhash.IsNull();
    std::unique_ptr<CChainState>& to_modify =
        is_snapshot ? m_snapshot_chainstate : m_ibd_chainstate;
    if (to_modify) {
        throw std::logic_error("should not be overwriting a chainstate");
    }
    to_modify.reset(new CChainState(m_blockman, snapshot_blockhash));
    
    if (is_snapshot || (!is_snapshot && !m_active_chainstate)) {
        LogPrintf("Switching active chainstate to %s\n", to_modify->ToString());
        m_active_chainstate = to_modify.get();
    } else {
        throw std::logic_error("unexpected chainstate activation");
    }
    return *to_modify;
}
CChain& ChainstateManager::ActiveChain() const
{
    assert(m_active_chainstate);
    return m_active_chainstate->m_chain;
}
bool ChainstateManager::IsSnapshotActive() const
{
    return m_snapshot_chainstate && m_active_chainstate == m_snapshot_chainstate.get();
}
CChainState& ChainstateManager::ValidatedChainstate() const