A classe friend pode ser declarada condicionalmente em C ++ 03?

Eu quero declarar uma classe de amigo somente se alguma condição (tempo de compilação) for verdadeira. Por exemplo:

// pseudo-C++
class Foo {
    if(some_compile_time_condition) {
        friend class Bar;
    }
};

Não encontrei nenhuma solução na internet. Eu passei por todas as respostas para a perguntaGerando Estruturas Dinamicamente em Tempo de Compilação. Muitos deles usam o C ++ 11std::conditional, mas eu gostaria de saber se é possível fazer isso em C ++ 03sem usar o pré-processador.

Esta soluçãohttps://stackoverflow.com/a/11376710/252576 não vai funcionar porquefriendnavio não é herdado (classe de amigo com herança ).

Editar Apenas para tornar isso mais facilmente visível, como mencionado abaixo no comentário: Esse requisito é incomum. Isso faz parte de um novo projeto de pesquisa em simulação de hardware, no qual estou trabalhando. O testbench é escrito em C ++ e quero exibir as variáveis ​​em uma forma de onda. Eu pesquisei várias outras opções e descobri que preciso usar umfriend class, devido a considerações práticas. O amigo capturará os valores e gerará a forma de onda, mas eu preferiria ter o amigo somente quando a forma de onda for necessária, e não o tempo todo.

questionAnswers(5)

yourAnswerToTheQuestion