Jestem programistą w C i C ++, chociaż nie trzymam się żadnego z tych języków i nie piszę ich mieszanki. Czasami posiadanie kodu w klasach, być może z przeciążeniem operatora, lub szablonów i och tak świetny STL jest oczywiście lepszym sposobem. Czasami użycie prostego wskaźnika funkcji C jest znacznie bardziej czytelne i wyraźne. Więc znajduję piękno i praktyczność w obu językach. Nie chcę wchodzić w dyskusję na temat: „Jeśli je zmiksujesz i skompilujesz za pomocą kompilatora C ++, to już nie będzie to miks, to wszystko C ++”. Myślę, że wszyscy rozumiemy, co mam na myśli, mieszając je. Nie chcę też rozmawiać o C vs. C ++, to pytanie dotyczy C ++ 11.
C ++ 11 wprowadza, jak sądzę, znaczące zmiany w działaniu C ++, ale wprowadził wiele specjalnych przypadków, wyjątków i nieprawidłowości, które zmieniają zachowanie różnych funkcji w różnych okolicznościach, nakładając ograniczenia na wielokrotne dziedziczenie, identyfikatory działające jak słowa kluczowe, rozszerzenia literałów łańcuchowych, przechwytywania zmiennych funkcji lambda itp.
Wiem, że w pewnym momencie, kiedy powiesz C ++, wszyscy przyjmą C ++ 11. Podobnie jak w dzisiejszych czasach C, najprawdopodobniej masz na myśli C99. To sprawia, że rozważam naukę C ++ 11. W końcu, jeśli chcę kontynuować pisanie kodu w C ++, może w pewnym momencie będę musiał zacząć korzystać z tych funkcji tylko dlatego, że mają to moi koledzy.
Weźmy na przykład C. Po tylu latach wciąż wiele osób uczy się i pisze kod w C. Dlaczego? Ponieważ język jest dobry. Co dobre, to że przestrzega wielu zasad, aby stworzyć dobry język programowania. Więc oprócz tego, że jest potężny (który jest łatwy lub trudny, prawie wszystkie języki programowania), C jest regularny i ma kilka wyjątków, jeśli w ogóle. C ++ 11 jednak nie wydaje mi się. Nie jestem pewien, czy zmiany wprowadzone w C ++ 11 poprawiają język.
Pytanie brzmi: dlaczego miałbym się uczyć C ++ 11?