Sobes.tech
Назад к вопросам
Junior — Middle
95

Какie новые возможности были введены в C++ в версии 2011 года?

Ответ от нейросети

sobes.tech AI

В C++11 были введены значительные улучшения и новые возможности, среди которых:

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

Пример использования auto и лямбда:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3, 4};
    for (auto x : v) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    auto sum = [](int a, int b) { return a + b; };
    std::cout << sum(3, 4) << std::endl;
    return 0;
}