Gere código C ++ onde os modelos foram expandidos

Eu queria saber se existe uma maneira de usar um compilador C ++ para produzir apenas código C ++, onde todos os modelos foram expandidos para as instanciações exigidas pelo programa. Esse código deve existir em algum momento do processo de compilação, embora provavelmente não esteja no formato ASCII por padrão, mas não deve ser muito difícil convertê-lo novamente em código C ++ legível na minha opinião.

EDITAR: Estou interessado principalmente em uma solução que produza código C ++ real (que pelo menos compila e idealmente também é legível), não apenas uma visão geral das classes e funções que são instanciadas. Isso parece ser um recurso útil para tornar o código de modelo complexo mais legível (por exemplo, para depuração) ou caso o código precise ser processado por outro software que não seja um compilador C ++ comum, que pode não suportar (totalmente) modelos.

questionAnswers(3)

yourAnswerToTheQuestion