Jednym z najemców C++ jest "Nie płacisz za to, czego nie potrzebujesz". Oznacza to, że nie musi istnieć klasa pasująca do jednego rozmiaru, którą każdy programista C++ MUSI znać i (co ważniejsze) musi KORZYSTAĆ. Może twój projekt wymaga ciągów bezpiecznych dla wątków. Możesz rzucić własną klasą. I zawsze masz możliwość użycia istniejącego std :: string.
Tak się składa, że w większości przypadków std :: string jest wystarczająco dobry. Ale kiedy nie jest, nie cieszycie się, że nie jesteście w tym zamknięci. Spróbuj przetasować własną klasę String w Javie i sprawdź, ile czasu zajmuje jej wyciągnięcie włosów.
Co do drugiej kwestii, jeśli zamierzasz walczyć z biblioteką, którą dodałeś do swojego projektu, dlaczego najpierw dodałeś bibliotekę do swojego projektu? Częścią decyzji o użyciu wxWidgets lub QT jest potwierdzenie, że musisz objąć klasę swoich ciągów w swoim projekcie (lub co najmniej sporej części tego projektu). Podobnie jak decyzja o bibliotece "C" oznacza wstawienie buforów char * i parametrów rozmiaru na wszystkie funkcje.
Tak, tak, naucz się alternatywnej klasy ciągów. Jeśli używasz biblioteki (i chcesz stać się jej biegłym), nie możesz zignorować części biblioteki tylko dlatego, że "jest to kolejna klasa napisów". To nie ma sensu.
Niestety , ale uwielbiam C++. Jest to język, którego używam i wolę pracować z wieloma językami. Przeczytaj uważnie to pytanie. – AraK
"Standardy są świetne, musimy zdefiniować własne!" ;) – Macke
"Miłą cechą standardów jest to, że jest ich tak dużo do wyboru." * Andrew S. Tanenbaum *, http://www.iwise.com/y2rQb – DigitalRoss