Я программист на C и C ++, хотя я не придерживаюсь ни одного языка и не пишу смесь из них. Иногда лучше иметь код в классах, возможно, с перегрузкой операторов или шаблонами, и, ну, о, такой отличный STL. Иногда использование простого указателя на функцию C гораздо более читабельно и понятно. Так что я нахожу красоту и практичность на обоих языках. Я не хочу вдаваться в дискуссию «Если вы смешиваете их и компилируете с помощью компилятора C ++, то это уже не миксы, а все C ++». Я думаю, что все мы понимаем, что я имею в виду, смешивая их. Кроме того, я не хочу говорить о C против C ++, этот вопрос все о C ++ 11.
C ++ 11 представляет, как мне кажется, существенные изменения в том, как работает C ++, но он ввел много особых случаев, исключений и нарушений, которые изменяют поведение различных функций в разных обстоятельствах, накладывая ограничения на множественное наследование, идентификаторы, которые действуют как ключевые слова, расширения строковых литералов, перехват переменных лямбда-функции и т. д.
Я знаю, что когда-нибудь в будущем, когда вы скажете, C ++, все примут C ++ 11. Так же, как когда вы говорите «C», вы, скорее всего, имеете в виду «C99» Это заставляет меня задуматься об изучении C ++ 11. В конце концов, если я захочу продолжить писать код на C ++, мне, возможно, в какой-то момент придется начать использовать эти функции просто потому, что это сделали мои коллеги.
Взять, к примеру, C. По прошествии стольких лет все еще много людей изучают и пишут код на C. Почему? Потому что язык хороший. Что означает хорошее, так это то, что для создания хорошего языка программирования следует много правил. Таким образом, помимо того, что он мощный (что легко или сложно, почти все языки программирования есть), C является обычным и имеет несколько исключений, если они есть. C ++ 11 однако я так не думаю. Я не уверен, что изменения, внесенные в C ++ 11, делают язык лучше.
Итак, вопрос: зачем мне учиться C ++ 11?