Originariamente inviato da robott
Se non ho capito male gli header tratti dalla libreria std non sono altro che file che contengono l'implementazione delle classi. Io le includo e queste divengono visibili all'interno del mio file.
Non è così semplice. In generale gli header C contengono solo prototipi (e qualche macro), per cui le funzioni in questione diventano visibili nel tuo file, ma non ne viene ancora fornita l'implementazione. Quando il compilatore vede che utilizzi una funzione di cui c'è solo il prototipo (come accade per le funzioni della libreria standard) segna nel modulo oggetto un promemoria per il linker che dice una cosa del tipo "qui il programma richiama la funzione TalDeiTali; pensaci tu". Quando poi il programma viene linkato, il linker prende tutti i moduli oggetto del tuo programma e la libreria statica della CRT e li collega insieme, sistemando tutti questi riferimenti non ancora risolti. Buona parte delle funzioni della CRT, quindi si trovano nella libreria statica della CRT (di solito poi ne esistono diverse versioni, ma ora questo non ci importa).
Con i template però la questione diventa più complicata dato che, almeno per quanto riguarda i compilatori attuali, non possono essere inclusi in librerie statiche, per cui gli header della libreria standard che vai ad includere che forniscono classi template ne forniscono anche tutta l'implementazione.