Existe um uso legítimo de void*em C ++? Ou foi introduzido porque C o tinha?
Só para recapitular meus pensamentos:
Entrada : Se quisermos permitir vários tipos de entrada, podemos sobrecarregar funções e métodos, alternativamente, podemos definir uma classe base comum, ou modelo (obrigado por mencionar isso nas respostas). Em ambos os casos, o código é mais descritivo e menos sujeito a erros (desde que a classe base seja implementada de maneira sã).
Saída : Não consigo pensar em nenhuma situação em que preferiria receber void*em vez de algo derivado de uma classe base conhecida.
Apenas para deixar claro o que quero dizer: não estou perguntando especificamente se há um caso de uso para void*, mas se há um caso em que void*é a melhor ou a única escolha disponível. O que foi perfeitamente respondido por várias pessoas abaixo.