Sobes.tech
Back to questions
Junior — Middle
82

Какие улучшения были внесены в язык C++ с появлением стандарта C++11?

Answer from AI

sobes.tech AI

Стандарт C++11 привнес множество улучшений и новых возможностей, среди которых:

  • Автоматическое выведение типов (auto) — упрощает объявление переменных.
  • Умные указатели (std::unique_ptr, std::shared_ptr) — для безопасного управления динамической памятью.
  • Лямбда-выражения — позволяют писать анонимные функции прямо в месте использования.
  • Константные выражения (constexpr) — вычисления на этапе компиляции.
  • Диапазонные циклы (range-based for) — упрощают перебор элементов коллекций.
  • Мульти-поточное программирование — введены стандартные потоки (std::thread), мьютексы и другие средства синхронизации.
  • Перемещение семантики и rvalue-ссылки — оптимизация передачи ресурсов.
  • Стандартные типы фиксированного размера (<cstdint>) — для более точного контроля над типами.

Пример лямбда-выражения:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    int sum = 0;
    std::for_each(v.begin(), v.end(), [&sum](int n) { sum += n; });
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}