Click here to Skip to main content
15,916,462 members
Articles / Programming Languages / C++17

From Modern to Unbelievably Modern C++

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
20 Jun 2023CPOL2 min read 12.9K   1   3
CoreC++ talk - experience summarize, and self opinions

Two weeks ago, I was giving a talk alongside a good friend of mine, Daisy Hollman, at the Israel CoreC++ conference. This was a really exciting & terrifying moment, but giving this talk was very important to me for many reasons. One of the reasons is that I truly believe in the abilities of modern C++ to make any C++ code a better code.

When I started this blog, it was mainly about how to do things in “modern” C++11/14, and how the same things can be done in (really) modern C++17/20.

When I was looking for (const auto& job : jobs), about a year ago in Israel, I was really surprised by how many companies are still working with C++11/14 (and insist on continuing to do that). This was almost the first question I asked during the interview process. Then I asked all these companies, if they are willing to (std::)move (std::)forward to a newer C++ version. The average answer I got was “if there will be reasons for that, we won’t avoid that” (or if (!reasons.empty())), and this answer shows how little knowledge about C++ these companies had.

C++
constexpr long double operator""_percents(long double percents)
{
    return percents * 0.01;
}

Reasons? Almost every C++ conference that exists around the world, has something like 80_percents talks about modern C++ abilities. Abilities like concepts, fold-expressions, attributes, constexpr, syntax, and more. I have to say that I was deeply disappointed by the status of most companies, that their main language (if not the only one) is C++.

So after more than two years of convincing from Inbal Levi, and the help she got from Daisy Hollman this year (and a lot of mental & mentoring support from Dafna Mordechai & Baot community), I decided to finally give a talk about the thing that should have been spoken a very long (long) time ago.

For all talk slides, you can goto the GitHub repo. When the talk will be uploaded to YouTube a goto label will be here too (and you can follow CoreC++ channel for updates).

The talk was better than I (std::)expected, and I got amazing feedback from everyone. It was really exciting to give my first talk in front of so many people, and I hope it will lead the change in the C++ industry.

Think About It

You decided to work with “modern” C++, so it’s time to start working with modern C++ (or at least please don’t look for modern C++ developers if you are currently working with C++14, someone told me that lies can’t (std::)move so far).

It’s time to stop calling C++11/14 modern C++, it’s not modern anymore. Maybe call it “no so old C++”, you may also call it “C/C++”, or even “old modern C++”. But you really don’t have the legitimization to call it “Modern C++”, because it’s not.

And now for some pictures that a good friend took from the talk (thank you Chen Angel):

Image 1

Image 2

Image 3

Image 4

Image 5

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Israel Israel
Senior C++ developer.
C++ Senioreas blog writer.
Passionate about investigating the boundaries and exploring the advanced capabilities of C++.

Comments and Discussions

 
QuestionReal-Time Embedded Development Pin
etkid8426-Jun-23 6:14
etkid8426-Jun-23 6:14 
QuestionHype stuff is not always god for companies. Pin
howieh20-Jun-23 2:31
howieh20-Jun-23 2:31 
AnswerRe: Hype stuff is not always god for companies. Pin
honey the codewitch20-Jun-23 3:12
mvahoney the codewitch20-Jun-23 3:12 
While that's true, there are also costs associated with using old toolchains, and that potential for hidden costs increases as the years go by, things go out of support, or in this case, things just get easier to code. That means with an old compiler, you are doing more work, and costing the company more money.

At what point you upgrade your toolchain depends on a lot of factors.

I typically use C++17 in the field. My core code will compile on C++14 but the generated binary code is often less efficient due to compromises I have to make to support C++14. And it costs more to support it.

It's give and take. Smile | :)
There's smoke in my iris
But I painted a sunny day on the insides of my eyelids
So I'm ready now (What you ready for?)
I'm ready for life in this city
And my wings have grown almost enough to lift me

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.