Задать вопрос
ilyazh
@ilyazh
Инженер-программист

Что значит С++17 в вакансиях? Зачем это пишут?

Часто вижу в вакансиях пишут "используем стандарт С++хх". Поясните, зачем это делают? Я знаю, что это номер стандарта. Как понять подхожу ли я под эти критерии? Например в 17 стандарте появились string_view. Если я использую string_view, то я использую такой стандарт? Есть ли вообще в этом какой-либо глубокий смысл или это скорее доп. информации о компании?

Как я представляю, что стандарт означает использование некоторых новых для него фич. Но если я использую стандарт меньший, чем грозит что фирма использует более новый? Если я встречу незнакомый синтаксис я посмотрю его на cppreferenece. Стоит ли вообще обращать на это внимание или скорее воспринимать это как набор тэгов, ключевых слов?
  • Вопрос задан
  • 720 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
В вакансиях много чего пишут и нередко мало понимают что пишут. Номер стандарта сегодня является некоторым атрибутом хайпа, которым очередная нерадивая компания буквально обязана блеснуть ради привлечения увлеченного энтузиаста к круглогодичному ковырянию своего легаси на C98 вперемешку с шаблончиками из C++03.
Хотя, безусловно, есть и высококлассные коллективы с передовыми знаниями и актуальными стандартами качества, где работать - сплошная мечта.

Между тем, понимание конкретного стандарта языка означает не только знание этого стандарта, но и знание всех стандартов до него, и понимание различий между ними всеми. А так же - понимание цены перехода в коде от более старого стандарта к более новому.
Понимание C++17, прежде всего, означает понимание цены перехода с C++14 в коде с auto и инициализацией списками, понимание цены отказа от std::tie в пользу структурного связывания (не говоря уже о понимании семантики структурного связывания) и понимание рациональности перехода на структурное связывание в конкретном месте кода, понимание последствий использования автоматического выведения аргументов шаблона типа в месте вызова конструктора и возможные последствия применения этого подхода в конкретном участке кода, понимание семантики работы с this в замыкании лямбды и отличия этого поведения в более старых стандартах. И так далее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
в вакансиях пишут "используем стандарт С++хх". Поясните, зачем это делают?

Для привлечения разработчиков, которым тошно поддерживать код, написанный до C++0x ;)
Ответ написан
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Когда такое указывают, то ожидают, что разработчик будет рефлекторно писать сразу код 17-го стандарта, без заглядывания на cppreferenece.
Ответ написан
Комментировать
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Если вы используете стандарт меньше чем C++17, а код написан на C++17, начинается потеря единообразия в коде, что влечет за собой в далекой перспективе убытки, потому что код становится дороже поддерживать.

Например, в фирме положено писать код так, что функция возвращает std::optional<>. Если произошла ошибка, нужно вернуть пустое значение, если все хорошо - заполненное.

Вы же начнете например возвращать bool, а результат выдавать через указатель (переданный в качестве параметра). Потом кто-то решит, что результат ему не нужен и пихнет туда nullptr, а вы это дело у себя не учли (соглашения-то писать вот так в компании нет) - и вот уже баг на ровном месте, недовольные клиенты, ночной рефакторинг и прочие прелести.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы