acessando variáveis de um bloco pretendido de blocos aninhados [duplicado]

Esta pergunta já tem uma resposta aqui:

Existe alguma maneira de acessar uma variável local no escopo externo em C ++? 4 respostas

No programa abaixo, como recuperar o valor de aa do Bloco A no Bloco C? Só podemos acessar o aa global mais externo usando o operador de resolução de escopo.

Solutoins conhecidos: 1. Use ponteiros diferentes em blocos diferentes 2. Use a variável no bloco pai antes de usar a variável do bloco atual

Estou à procura de qualquer outra solução alternativa

Eu sei que isso não é um bom código. Apenas curioso em entender como alcançá-lo.

#include <iostream>
#include <cstdio>

using namespace std;

// Global
int aa = 10;

int main()
{
    // Main
    int aa = 20;

    {
        // Block A
        int aa = 30;

        {
            // Block B
            int aa = 40;

            {
                // Block C
                int aa = 50;

                cout << "block C " << aa << endl;
                cout << "block A " << ????? << endl;
                cout << "global" << ::aa << endl;
            }

            cout << "block B " << aa << endl;
        }

        cout << "block A " << aa << endl;
    }

    cout << "main " << aa << endl;

    return 0;
}

questionAnswers(2)

yourAnswerToTheQuestion