Modern C++ bed time reading

Modern C++ requires nontrivial time investment

So little C++ so much good!
So little C++ so much good!

To properly and solidly understand and happily use modern C++ (C++ 11,14, 17 and beyond) one has to sit and learn the “new fundamentals”.

However good you are with C, C++98 or anything similar do not make a mistake of not learning the key concepts first. Please.

There are of course  reference books by one Bjarne Stroustrup.  Perhaps you might not mind giving 100+ dollars, euros or whatever to own them as proper real books.  Or you are “a poor student” and you have downloaded them in pdf format.

Now is the time to invest some time

Instead of full books, here is my list of required texts, posts or even video clips, which I have used for the purpose of learning and revisiting for a quick refresh. And good examples to copy paste of course.  Some of them are not easy to “Google out” :)  Even worse there is a lot of people who think advice on modern C++ has to be in form of esoteric texts peppered with some “snazzy” C++ stunts. I think these people are a  chief reason why some other good people shying away from modern C++, or even actively avoiding it.  So, I did it for you. I went through an little ocean of good and bad C++ resources, filtering out the best. And that I am doing since approximately  1994.

For some modern c++, ready to copy/paste please click here

In any case time requirement is quite large. And you know that the most efficient way of going on about this is to sit in front of your favorite C++ IDE and try things as you learn or as they say “as you go along”.

So you  will need to revisit numerous times the texts on key modern C++ concepts. Until such a time when C++ std lib source stops looking like radio noise from space, in a text form. Or until SFINAE becomes something else but mistyped Sphinx, in your head.

  • One page modern C++
    • Yup. Here it is. Amazingly short but clear explanation of the real fundamental changes. Please do not make a mistake of not reading this first.
  • SFINAE and enable_if
    • Not 17 and not 14 but C++11 is the real paradigm shift.  IMHO This is one text you really need to go through few times. You simply can not afford to go further into the modern C++ before you understand all of this text.  Eli really explained it well. For programmers not for the beginners.
  • C++17 on Wikipedia
    • You have perhaps forgotten what exactly differentiates C++17 from 14, or 11? Just come here for a quick refresh.
  • A Brief Introduction to Rvalue References
    • On of the key concepts and key paper on the same key concept. A brief tutorial, rather than a complete reference. Both simple and from the masters in the same time.
  • C++11 – the new ISO C++ standard
    • Real treasure for the one who needs to have a quick peek to a detail (or two) forgotten in the sea of other C++ details. Of course Ignore the “11”. Bjarne makes it simple and useful, as ever.

This page is refreshed frequently. Therefore please do visit us frequently :)