Skip to content
Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

Modern C++? How about Contemporary C++?

elbeno, 1 November, 20231 November, 2023

What does “modern C++” mean? Some say it started in 2001 with Andrei Alexandrescu’s book Modern C++ Design. A lot of people describe C++11 and C++14 as modern; others say, “It’s time to stop calling C++11/14 modern C++, it’s not modern anymore.”

Here’s another idea. The art world already settled this, so let’s take a cue from there.

Modern art is not really being produced today. The modern art period stretched roughly from impressionism through fauvism, cubism, etc and ended by the 1970s. Art being produced today is usually termed contemporary art. If I called Banksy’s output “modern art”, I’d just be wrong — and confusing. Note though that there is an overlap in the modern art and contemporary art periods.

(Disclaimer: I am not an artist or an art historian. I am just someone with a broad education who can use Wikipedia.)

I propose the same for C++. Modern C++, like modern art, had a relatively long period. Maybe it did start in 2001; certainly it was influenced a lot by Boost in the aughts; and it became properly recognized with C++11 and C++14. Like many things, we can only recognize the period and its roots in hindsight, so the term gains popularity only much later.

I think with C++20 and later, we are now in the contemporary C++ period. I propose roughly that the modern C++ period ended and the contemporary period started somewhere in the C++17 to C++20 years. The modern period was characterized by all the things that C++11 through C++17 brought to the language – lambdas, type support, sum types, etc, enabling more genericism. The contemporary period includes concepts in the language, ranges, and more that C++20 and beyond brought us.

It is certainly my experience that there is a large difference between working in C++20 and being limited to C++17. Another observable division here is that largely, in the modern period, C++ development was informed by folks working in Boost (lambdas, optional); in the contemporary period it is informed at least as much by independent libraries (libfmt, range-v3).

As with art, there is some overlap. Clearly ranges were in development during the modern period, just as the early modernists (e.g. Andrei, 20-25 years ago) were practising in the pre-modern era. But I would say that C++ written in 2023 (contemporary) is as different to C++ written in 2011 (modern) as C++ written in 2011 is to C++ written in 1998.

The “hump” of modern C++ was perhaps half a standard lifetime away now. It was a necessary stepping stone to contemporary C++. But it’s time to recognize what delimits a useful definition of modern C++, and to adopt a new term. We are now in the contemporary C++ period. Maybe still in the early part, but that’s what I’m going to start calling it. C++11/14 is squarely modern (it’s not time to stop calling it that); C++20 and beyond is contemporary.

Uncategorized

Post navigation

Previous post
Next post

Related Posts

In Rainbows

15 October, 200715 October, 2007

So, not only did the site get severely overloaded the first couple of days it was up (never saw that one coming!), but they appear to have hired a 13 year-old myspace aficionado to design the thing. Honestly, life’s too short to waste time on this. I think I have…

Read More

Cleaning up at school

31 August, 2009

Mini-Elbeno starts his new school next week and last weekend I went over there to join the staff and some other parents in a cleanup session. First was wheeling up some recycle bins and filling them full of old pairs of jeans which the kids had collected previously for a…

Read More

Top 50 Sci-Fi shows of all time

24 September, 2005

No doubt you've seen (via slashdot or elsewhere) that boston.com have assembled their list of the Top 50 Sci-Fi Shows of All Time. (Hmmm… is this the wrong place to be a SF snob and argue about the difference between SF, Sci-Fi, and Space Opera?) Anyway, the full list all…

Read More
©2026 Why is a raven like a writing desk? | WordPress Theme by SuperbThemes