O que é type erasure?
O type erasure é uma técnica em que os argumentos de tipo concretos do código genérico são removidos e substituídos por uma representação compartilhada, como um tipo base comum ou um valor encaixotado. Uma única versão compilada então trata todos os argumentos de tipo por meio dessa interface uniforme. Ele mantém o tamanho do código pequeno ao custo de despacho em tempo de execução ou de encaixotamento.
Por que isso importa
O erasure produz uma cópia do código genérico independentemente de quantos tipos o usam, mantendo binários e tempos de compilação menores do que a monomorfização. A desvantagem é a indireção e a perda de alguma informação de tipo em tempo de execução.
Guias relacionados
What Is Monomorphization?Monomorphization compiles generic code into a separate specialized copy for each concrete type it is used wit…
What Is Trait Object Dispatch?Trait object dispatch calls a method through a runtime pointer to a table of implementations, choosing behavi…
What Is Boxing?Boxing wraps a value type in a heap-allocated object so it can be used where a reference or common interface…