Standard Template Library: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Embolo (discussione | contributi)
Nessun oggetto della modifica
Embolo (discussione | contributi)
Nessun oggetto della modifica
Riga 1:
la '''Standard Template Library (STL)''' è una [[Libreria software]]. Fainclusa parte dellanella Standard Library del linguaggio [[C plus plus|C++]] e definisce [[Strutture dati generiche]], [[Iteratore|Iteratori]] e [[Algoritmi generici]].
 
==Descrizione==
La STL costituisce uno strato software ormai divenuto fondamentale per i programmatori [[C plus plus|C++]], cui fornisce un set precostituito di classi comuni, come containers e array associativi, che possono essere utilizzati con qualsiasi tipo, sia primitivo che definito dall'utente, con il supporto ad alcune operazioni elementari come copia ed assegnamento.
 
LaCaratteristica STLfondamentale raggiungedelLa questo risultatoSTL attraversoè il massiccio utilizzo dei [[Programmazione generica|template]]s. In pratica lo standard ([[ISO/IEC 14882]]) non richiede alle software houses che sviluppano i [[Compilatori|compilatori]], a differenza delle librerie standard del C e del C++, di generare una libreria con codice oggetto cui linkare i programmi che la utilizzano, ma segue un'altra via: le classi e le funzioni non sono dei "prodotti finiti", ma poco più che degli schemi; al momento dell'istanziamento di un oggetto o funzione template, tramite una sintassi particolare, possono essere specificati dei parametri (ad esempio, il tipo che deve essere contenuto in una struttura dati, o la funzione utilizzata per allocare memoria, etc.) utilizzati di volta in volta dal compilatore per generare in linea il codice finale per quell'oggetto, che quindi verrà in un secondo momento convertito in codice oggetto (binario).
 
Questo tipo di approccio è molto potente e genera codice più efficiente di quello ottenuto attraverso il meccanismo dell'ereditarietà; lo svantaggio è nella generazione del codice, che può risultare molto complesso, tanto da creare talvolta problemi ai compilatori, ai quali può succedere di fallire la compilazione di costrutti validi, di produrre codice non valido, o richiedere al programmatore sforzi ulteriori (non richiesti, in teoria, dallo standard) per ottenere il risultato voluto.