Kiedy po raz pierwszy nauczyłem się C ++ 6-7 lat temu, nauczyłem się w zasadzie „C z klasami”. std::vectorbył zdecydowanie zaawansowanym tematem, o którym można się dowiedzieć, gdyby naprawdę chciał. I z pewnością nikt mi nie powiedział, że destruktory można wykorzystać do zarządzania pamięcią. Dziś wszędzie, gdzie spojrzę, widzę RAII i SFINAE, STL i Boost, a także, cóż, nowoczesne C ++. Nawet osoby, które dopiero rozpoczynają naukę języka, wydają się być uczone tych pojęć niemal od pierwszego dnia.
Moje pytanie brzmi: czy to po prostu dlatego, że widzę tylko „najlepsze”, czyli pytania tutaj na SO i na innych stronach programistycznych, które mają tendencję do przyciągania początkujących (gamedev.net), czy też jest to faktycznie reprezentatywne dla C ++ społeczność jako całość?
Czy nowoczesny C ++ naprawdę staje się domyślnym? Czy zamiast być jakąś wymyślną rzeczą, o której piszą eksperci, staje się „takim, jakim jest C ++”? A może po prostu nie widzę tysięcy ludzi, którzy wciąż uczą się „C z klasami” i piszą własne tablice dynamiczne zamiast używać std::vector, i zarządzają pamięcią, ręcznie wywołując new / delete z ich kodu najwyższego poziomu?
Choć bardzo chcę w to wierzyć, wydaje się niewiarygodne, że cała społeczność C ++ rozwinęła się tak bardzo w ciągu kilku lat. Jakie są Twoje doświadczenia i wrażenia?
(zastrzeżenie: ktoś niezaznajomiony z C ++ może błędnie zinterpretować tytuł jako pytanie, czy C ++ zyskuje na popularności w porównaniu z innymi językami. To nie jest moje pytanie. „Współczesny C ++” to popularna nazwa dialektu lub stylu programowania w C ++, nazwana na cześć książki. Nowoczesny projekt C ++: Zastosowano ogólne programowanie i wzorce projektowe ”, a interesuje mnie wyłącznie to w porównaniu ze„ starym C ++ ”. Nie ma więc potrzeby mówić mi, że czas C ++ minął i wszyscy powinniśmy używać Pythona;))