Какие хорошие методы программирования будут меняться с С++ 11?
Например, "Не возвращать объекты по значению, если они дороги для копирования" (RVO не всегда может использоваться). Этот совет может измениться из-за ссылок rvalue.
То же самое можно сказать и о хранении коллекций указателей на объекты, потому что копирование их по значению в коллекцию было слишком дорого; эта причина может быть более недействительной.
Или использование перечислений может быть обескуражено в пользу "класса enum".
Какие другие методы или советы изменится?
Ответы
Ответ 1
Я ожидаю, что С++, написанный в функциональном стиле, станет более распространенным, потому что:
- Лямбда-выражения значительно упрощают использование стандартных алгоритмов библиотеки
- Перенос семантики делает возврат стандартной библиотеки или других объектов контейнера RAII значительно более дешевым.
Ответ 2
Улучшена локальность кода с помощью лямбда-выражений.
Ответ 3
Ссылки Rvalue не являются заменой RVO или NRVO. Возвращение больших вещей по стоимости до сих пор глупо - это просто глупо, когда класс на самом деле мал и содержит кучу памяти. Передача в ссылке на возвращаемое значение по-прежнему является лучшей практикой, imo.
Функциональные объекты как raw structs/classes будут устаревать в пользу лямбда.
Я не могу много думать, если честно. С++ 0x, похоже, делает существующий код более простым, а не меняет его.