Назад к вопросам
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;
}