2010-02-10 16 views

risposta

6

Libreria standard C++ - la definizione generica di quale funzionalità/comportamento deve essere fornita dalla libreria (stringhe, coppie, iostream, contenitori, algoritmi, ecc. Anche se le specifiche variano a seconda della versione dello standard C++).

Standard Template Library (STL) - la parte della libreria standard C++ che ha a che fare con contenitori e algoritmi (e gli iteratori che riuniscono questi due elementi). STL non faceva parte della libreria C++ originale.

libstdC++ - un'implementazione specifica della libreria standard C++.

SGI STL - un'implementazione specifica della parte STL della libreria standard C++. Credo che questa sia stata anche una delle prime versioni di STL. Prima che la STL diventasse parte della libreria C++, gli sviluppatori dovevano scaricare separatamente la STL (allo stesso modo che facciamo con Boost).

+2

Um, la parte STL era parte dello standard C++ originale del 1998. (In effetti, l'incorporazione del STL, iniziato in ritardo durante il processo di standardizzazione, ritardava significativamente il primo standard C++.) Il SGI STL è uno specifico (Penso che sia anche l'originale) implementazione della STL. Non tutti gli STL sono stati convertiti nello standard C++ (ad es. 'Slist') e alcuni di ciò che è contenuto nell'ultimo non provengono dall'STL (ad es.' Std :: string' come contenitore STL). – sbi

+0

"L'STL non faceva parte dello standard C++ originale" - questo può essere visto come corretto - lo standard C++ da nessuna parte si riferisce a qualcosa chiamato "STL" o errato in quanto i contenitori e gli algoritmi che compongono l'STL sono sempre stati parte dello standard C++. –

+1

L'STL non era nell'ARM, che potrebbe essere considerato una sorta di documento standard. Era nel primo standard ufficiale. –

4

Parlando solo circa la provenienza dei componenti STL dello standard C++ librerie usate di default:

  • MSVC utilizza le librerie Dinkumware (o apparentemente un sottoinsieme di esso, perché Dinkumware si vendono le librerie addon per MSVC anche: -P)
  • GCC utilizza una versione estesa di SGI STL come parte di libstdC++

Se si desidera scambiare lo STL, ci sono altre implementazioni STL come STLport. Scegli il tuo veleno. :-P

+0

Si confondono "STL" e "Libreria standard C++". Questo è un errore comune, ma comunque un errore. – sbi

+0

@sbi: No, non sono io stesso confuso riguardo ai due, ma stavo cercando di pensare a un modo per rispondere alla domanda dell'OP. Ma grazie per i tuoi pensieri (e il tuo downvote). :-P –

Problemi correlati