Подтвердить что ты не робот

Как изменилось С++ за последнее десятилетие?

В последнее десятилетие я редко или редко использовал С++, и теперь похоже, что я снова буду что-то делать в нем. Я с нетерпением жду этого, но мне интересно, как это изменилось с тех пор, как я в последний раз его использовал.

Есть ли хорошие/короткие веб-страницы, сообщения в блогах или даже книги о том, как С++ изменилось за последнее десятилетие?

Обратите внимание, что этот вопрос касается языка, а также инструментов или дополнительной информации о работе на С++. В частности, я работаю в Windows, используя VС++ 2008.

4b9b3361

Ответ 1

Хотя официальный стандарт не сильно изменился за последнее десятилетие или около того, есть несколько важных вещей, которые произошли:

  • пока он еще не является официальным стандартом, новый "стандарт" (обычно называемый С++ 0x) "за углом". GCC и MSVC 2010 включили значительную часть этого нового стандарта, но я не уверен, насколько широко используется.
  • Boost library стала основным игроком в предоставлении дополнительной поддержки для языка - до такой степени, что это оказало значительное влияние на новый стандарт
  • "основанные на шаблонах" методы программирования стали гораздо более распространенными, возможно, обгоняя старые методы наследования, основанные на наследовании (повторное использование кода, возможно, было хорошо развито, когда вы в последний раз смотрели на С++ в зависимости от практики, которую может иметь ваш магазин использовались в то время). Компиляторы
  • (и, в частности, Microsoft) прошли долгий путь в соблюдении стандартов

Ответ 2

Самое большое изменение в том, что стандарт С++ действительно работает во всех основных компиляторах. Такие элементы, как шаблоны членов, были iffy.

Ответ 3

Сам язык не сильно изменился. Однако лучшие практики и идиомы сделали много.

Я предлагаю вам взглянуть на книгу "" Стандарты кодирования С++: 101 правила, рекомендации и лучшие практики" Херба Саттера и Андрей Александреску, чтобы посмотреть, как выглядит современный С++ сегодня.

Ответ 4

Я думаю, что одним из самых больших изменений является одно из мышления: многие люди (наконец!) поняли, что шаблоны невероятно мощны и не нуждаются в медленной работе, а использование STL и повышение значительно более широкое, чем 10 много лет назад.

Ответ 5

VS2008 поставляется с TR1, большое дополнение к std, которое содержит такие вещи, как статические массивы, указатели ссылок ссылок и т.п. Кроме того, самое большое изменение заключается в том, что компилятор компилирует, как определяет стандарт.

Ответ 6

Интересный вопрос, когда я приду к своей 10-й годовщине программирования С++ для монет.

Мое личное мнение состоит в том, что я буду немного насторожен, но только несколько - так как я не видел его (хотя, я думаю, могу догадаться, что ему нравится) - уделять большое внимание интернет-эхо камера. Это правда, некоторые люди пошли навстречу современному стилю С++, со всем, что было полностью задумано, и с использованием современных технологий, чтобы заставить компилятор сделать свою вещь Prolog наилучшим образом. Однако это, конечно, не универсально, и, в основном, код С++, который я вижу сегодня, очень похож по большинству способов на код С++, который я видел десять лет назад.

Было бы неплохо освежить современные моды, потому что некоторые вещи, которые были несколько редки десять лет назад (умные указатели, регулярное использование RAII, стандартные библиотеки и т.д.), теперь более распространены. Но, если вы не уверены, что код, с которым вы будете работать, украшен шаблонами и повышением и т.д., У вас есть хороший шанс работать с чем-то, что в глубине души очень похоже на то, с чем вы работали.

Это может быть немодно, чтобы сказать это, но это не делает его менее справедливым: независимо от уровня квалификации, многие люди не заботятся о современных С++. Некоторые, потому что они этого не понимают. Некоторые, потому что они это понимают. И для некоторых, возможно, "забота" - это даже не правильное слово - они даже не знают, что оно существует. И, как вы могли ожидать, эти люди все кодируют соответственно.

Возможно, я двигаюсь в неправильных кругах, но мой опыт - это люди, которые не могут или не могут или не будут кодировать в современном стиле, превосходящие число тех, которые могут иметь какой-то огромный запас. И те, кто может это сделать, обычно этого не делают, потому что они превосходят численностью. Их код переписывается или игнорируется, пока они не начнут писать материалы, которые могут понять другие люди. Так что, может быть, это хорошо, или, может быть, это плохо - вряд ли это уместно, на мой взгляд, потому что результат тот же: если ваш опыт окажется чем-то вроде моего, у вас есть хороший шанс столкнуться с сегодняшним кодом, удивительно похожий на то, что вы видели в 1999 году.

P.S. Николай Йосуттис написал пару книг, которые, по-видимому, понравились моему последнему редактору-резиденту-работодателю. Также попробуйте Modern С++ Design (Alexandrescu) - вероятно, немного отныне, но это объясняет многие из принципов. Herb Sutter Исключительный С++ дает, как я помню из обзора рабочей копии, хороший обзор некоторых современных технологий, не слишком зацикляясь на шаблон передний. И, конечно, boost демонстрирует все подобные вещи (и многое, многое другое - затем некоторые бонусные материалы) претворяется в жизнь над диапазон компиляторов.

(Надеюсь, приведенный выше список не слишком устарел, как я мог бы сказать, я нашел гораздо меньше необходимости обновляться с последними тенденциями на С++, чем я когда-либо ожидал.)