I
I
Ilia Zhitenev2021-09-16 21:03:08
C++ / C#
Ilia Zhitenev, 2021-09-16 21:03:08

What does C++17 mean in vacancies? Why are they writing this?

Often I see in vacancies they write "we use the C++xx standard". Explain why they do it? I know it's the standard number. How do I know if I meet these criteria? For example, string_view appeared in standard 17. If I use string_view then I use such a standard? Is there any deep meaning in this at all or is it more of an add-on. company information?

As I imagine that the standard means the use of some new features for it. But if I use a smaller standard, what threatens that the company uses a newer one? If I come across an unfamiliar syntax, I'll look it up on cppreferenece. Is it worth paying attention to it at all, or rather perceive it as a set of tags, keywords?

Answer the question

In order to leave comments, you need to log in

4 answer(s)
E
Evgeny Shatunov, 2021-09-17
@ilyazh

In vacancies, a lot of things are written and often they do not understand what they write. The standard number today is some attribute of the hype, which another negligent company is literally obliged to show off in order to attract an enthusiastic enthusiast to year-round picking his legacy in C98 mixed with templates from C ++ 03.
Although, of course, there are high-class teams with advanced knowledge and up-to-date quality standards, where it is a dream to work.
Meanwhile, understanding a particular standard of a language means not only knowing that standard, but also knowing all the standards before it, and understanding the differences between them all. And also - understanding the cost of switching in the code from an older standard to a newer one.
Understanding C++17 first of all means understanding the cost of migrating from C++14 in code withautoand initialization by lists, understanding the cost of abandoning std::tiestructural binding in favor of structural binding (not to mention understanding the semantics of structural binding) and understanding the rationality of switching to structural binding in a specific place in the code, understanding the consequences of using automatic inference of type template arguments at the site of a constructor call and the possible consequences of using this approach in a specific section of code, understanding the semantics of working with thislambda closures, and the differences in this behavior in older standards. Etc.

A
Adamos, 2021-09-16
@Adamos

in vacancies write "we use the C ++ xx standard". Explain why they do it?

To attract developers who are sick of maintaining code written before C++0x ;)

S
Sergey Gornostaev, 2021-09-16
@sergey-gornostaev

When this is indicated, it is expected that the developer will reflexively write the code of the 17th standard right away, without looking at cppreferenece.

A
Armenian Radio, 2021-09-16
@gbg

If you use a standard less than C++17, and the code is written in C++17, the code starts to lose uniformity, which entails losses in the long run, because the code becomes more expensive to maintain.
For example, in a company it is supposed to write code in such a way that the function returns std::optional<>. If an error occurs, you need to return an empty value, if everything is fine - filled.
You will, for example, start returning a bool, and return the result through a pointer (passed as a parameter). Then someone decides that he doesn’t need the result and pushes nullptr there, but you didn’t take this into account (there is no agreement to write something like this in the company) - and now the bug is out of the blue, dissatisfied customers, nightly refactoring and other delights.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question