Indice generazionale
Un riferimento che unisce un indice di array a un contatore di generazione, così che un vecchio handle verso uno slot riutilizzato risulti riconoscibile come non valido.
Quando un oggetto viene distrutto, il suo slot nell'array viene liberato ma non spostato; l'oggetto successivo lo riutilizza e incrementa di uno la generazione. Un handle porta con sé sia l'indice sia la generazione con cui è stato emesso. Alla dereferenziazione si confronta la generazione dell'handle con quella attuale dello slot: se differiscono, l'oggetto originale non esiste più, e un puntatore pendente potenzialmente pericoloso diventa un semplice fallimento rilevabile.
Si ottengono così riferimenti stabili in O(1) senza conteggio dei riferimenti né garbage collector, ed è per questo che framework ECS come EnTT e Bevy lo usano per gli ID delle entità e che i contenitori slot map si basano su di esso. Il suo compagno abituale è lo sparse set, che registra dove si trovano davvero gli slot vivi.