2013-01-23 12 views
5

Il C++ è stato formalmente standardizzato nel 1998, ma fino a che punto possiamo trovare una classe denominata string che assomiglia a std::string in C++ 2003 in un'implementazione C++ pre-standard?Per quanto tempo prima che la standardizzazione fosse `stringa` disponibile?

Chiedo perché CString, come parte di MFC, è stato "là fuori" dal 1992 e sto cercando di determinare se è stato visto prima o dopo quello che alla fine è diventato std::string.

+0

Il più vecchio che ho ancora ha un copyright del 1994 da Rogue Wave. STL è stato presentato per la prima volta nel novembre 1993. È difficile vedere come questo cambi tutto ciò su cui oggi lavoreresti. –

+0

Come mai è fuori tema ?! –

+0

@HansPassant: non è così. Il problema pratico qui è che desidero sapere. –

risposta

5

Molto prima. Nel 1992 tutti stavano ancora arrotolando le proprie lezioni di corda. Ricordare che std::string era in origine terribile, e poi divenne terribile e un container in stile STL, ma era molto tardi nel processo, poiché il Comitato ritardò il primo Standard per due anni per adattarsi all'STL e tutto ciò che Stepanov aveva bisogno. Pertanto, std::string non è stato finalizzato fino a tarda ora.

+1

Mi piace ancora rotolare una classe String personalizzata di volta in volta; mentre std :: string è "ben testato" e "potente", ci sono alcune cose interessanti che possono essere fatte con classi String personalizzate, come hashing incorporato, ottimizzazione della memoria su architetture specifiche, semplificazione della progettazione dell'interfaccia e così via. –

+0

+1 per "terribile". – juanchopanza

+0

Aww. Va bene allora. –

2

Si potrebbe trovare un po 'simile prima del 1998, ma in pratica, è stato diversi anni dopo lo standard prima di potrebbe più o meno contare su una di essere lì. E i precedenti erano nel migliore dei casi "simili"; Ricordo di aver notato l'assenza dello in uno dei bozzetti del comitato (l'ultimo uno, penso), il che era ovvio svantaggio, che non si sarebbe verificato se qualcuno avesse implementato una versione con la funzione .

Problemi correlati