Все темы
Подготовка к интервью
Стандарты C++
Ключевые возможности C++11, C++14, C++17, C++20, C++23 и то, что готовится в C++26.
Сортировка:
Уровень:
2 вопросов
JuniorТеорияОчень частоЧто такое стандарт C++ и какие основные версии языка существуют?
JuniorТеорияОчень часто
Что такое стандарт C++ и какие основные версии языка существуют?
Стандарт C++ — это ISO-документ (ISO/IEC 14882), определяющий ядро языка и стандартную библиотеку. Основные версии: C++98, C++11 (auto, лямбды, move), C++14, C++17 (структурные привязки, if constexpr), C++20 (concepts, modules, ranges, корутины), C++23.
Типичные ошибки
- ✗Путать версию компилятора с версией стандарта — GCC 13 поддерживает большую часть C++20, а не «GCC 13 — это компилятор C++20»
- ✗Считать
-std=c++17строгим подмножеством-std=c++20— порой фичу пересматривают или удаляют между черновиками - ✗Думать, что фича попадает в год её предложения — обычно от бумаги до стандарта проходит 3–6 лет
Уточняющие вопросы
- →Почему некоторые фичи помечены
[[deprecated]], а не удалены сразу? - →Какие фичи C++23 уже доступны в основных компиляторах?
MiddleТеорияЧастоКакие ключевые возможности добавили современные стандарты C++ (C++11–C++23)?
MiddleТеорияЧасто
Какие ключевые возможности добавили современные стандарты C++ (C++11–C++23)?
C++11: move-семантика, умные указатели, лямбды, auto. C++14: обобщённые лямбды, вывод типа возврата, ослабленный constexpr. C++17: structured bindings, if constexpr, optional, string_view. C++20: концепты, корутины, модули, ranges, <=>. C++23: std::expected, std::print, mdspan.
Типичные ошибки
- ✗Считать, что фичи C++20 production-ready везде — у модулей и корутин всё ещё неполная поддержка компиляторов и систем сборки; многие команды на C++17
- ✗Хранить
std::string_viewдольше времени жизни исходной строки — это non-owning view, висячий — UB - ✗Путать C++11 single-return
constexprс C++14+ — в C++11 внутриconstexprфункции запрещены локальные переменные и ветвления
Уточняющие вопросы
- →Что заменяет
std::expected<T, E>(C++23), и как его стоимость отличается от исключений? - →Почему поддержка систем сборки — главный тормоз для внедрения C++20 модулей?