2013-01-23 12 views
5

C++ został formalnie wystandaryzowany w 1998 r., Ale jak daleko wstecz możemy znaleźć klasę o nazwie string, która wygląda jak std::string w C++ 2003 w pre-standardowej implementacji C++?Jak długo przed standaryzacją dostępny był "ciąg"?

Pytam, ponieważ CString, jako część MFC, jest "tam" od 1992 roku i próbuję ustalić, czy po raz pierwszy zaobserwowano go przed, czy po tym, co ostatecznie stało się std::string.

+0

Najstarszy z nich wciąż mam prawa autorskie 1994 z Rogue Wave. STL po raz pierwszy zaprezentowano w listopadzie 1993 roku. Trudno zobaczyć, jak to zmienia cokolwiek, nad czym dzisiaj pracujesz. –

+0

Jak u licha jest to nietypowe ?! –

+0

@HansPassant: Nie ma. Praktycznym problemem jest to, że chcę wiedzieć. –

Odpowiedz

5

Cóż wcześniej. W 1992 r. Wszyscy nadal toczyli własne klasy ciągów. Pamiętaj, że std::string było początkowo okropne, a potem stało się straszne i pojemnik w stylu STL - ale to było bardzo późno, ponieważ Komitet opóźnił pierwszy Standard przez dwa lata, aby zmieścić się w STL i wszystko, czego Stepanov potrzebował. Tak więc std::string nie został sfinalizowany aż do dość późnego.

+1

Nadal lubię przewracać niestandardową klasę String od czasu do czasu; podczas gdy std :: string jest "dobrze przetestowany" i "potężny", jest kilka fajnych rzeczy, które można zrobić za pomocą niestandardowych klas String, takich jak wbudowane hashowanie, optymalizacja pamięci w określonych architekturach, uproszczenie projektowania interfejsu i tak dalej. –

+0

+1 za "straszne". – juanchopanza

+0

Aww. W porządku. –

2

Można znaleźć nieco podobny przed rokiem 1998, ale w praktyce było to kilka lat po średnia zanim mógł mniej więcej policzyć na palcach jednej będąc tam. A wcześniejsze wersje były w najlepszym wypadku "podobne"; Pamiętam, jak pamiętałem o absense z push_back w jednym z szkiców komisji (ostatni chyba ), co było oczywistym niedopatrzeniem, które nie wystąpiłoby, gdyby ktoś wprowadził wersję z funkcją .

Powiązane problemy