Felizmente, o C ++ agora tem o equivalente a uma interface GO ou Java, e é chamado de conceito (requer um compilador recente com suporte para C ++ 20).No GO, descobri que o uso de uma interface não era gratuito: pode tornar o código mais lento.O truque é garantir que seu tipo possa ser instanciado como uma constante de tempo de compilação e, em seguida, você apenas o passa para a função de contagem.
Em uma postagem anterior do blog, mostrei na linguagem de programação Go que você escreve funções genéricas depois de definir uma interface.No C ++, você pode até fazer o custo de tempo de execução absolutamente nulo, forçando o cálculo do tempo de compilação.
Fonte: https://lemire.me/blog/2023/04/18/defining-interfaces-in-c-with-concepts-c20/