На каком стандарте C++ вы работали больше всего
Что проверяют
Совпадает ли заявленный стандарт с тем, что вы реально писали. Вопрос открывает серию уточняющих: назовёте C++20, спросят про концепты и ranges, назовёте C++11, спросят про move-семантику. Заодно выясняют, чем ограничен ваш тулчейн и насколько вы честны про рамки проекта.
Как отвечать
Назовите один стандарт как основной, скажите, чем он был задан, и приведите пару вещей, которыми пользовались осознанно. Опорная карта, чтобы не перепутать:
- C++11: rvalue-ссылки и move-семантика,
auto, лямбды,unique_ptrиshared_ptr,std::threadи модель памяти,nullptr,constexpr; - C++14:
make_unique, обобщённые лямбды, захват с инициализацией; - C++17: структурные привязки,
optional,variant,string_view,if constexpr, файловая система; - C++20: концепты, ranges, корутины,
span, оператор<=>. Модули поддержаны неравномерно, и честное «ими не пользовался» звучит лучше, чем попытка сделать вид.
Полезно объяснить, почему стандарт именно такой: старый компилятор в целевой системе, сертификация, embedded-тулчейн, запрет исключений и RTTI в проекте. Это читается как опыт, а не как пересказ списка нововведений. Если стандарт свежий, скажите, что он дал по делу: string_view убрал копии в разборе текста, optional заменил сигнальные значения, if constexpr разгрузил специализации шаблонов.
Где спотыкаются
Путают, что в каком стандарте появилось. make_unique это C++14, а не C++11, optional и variant это C++17, а не C++20. Уверенно названная не та версия обесценивает весь остальной ответ.
Второе: заготовленные цифры про ускорение, которые нечем подтвердить. Про производительность говорят с указанием, что мерили, на каких данных и чем; иначе один вопрос «как замеряли» закрывает тему.
Третье: называют свежий стандарт, а в задаче на доске пишут new и delete, ручные циклы по индексам и const char* там, где просится string_view. Проверяют не знание списка возможностей, а привычки в коде.