Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Modernes C++

    modernescpp.com · Personal blog · on HN since 2016

    Rainer Grimm writes tutorials on modern C++, covering C++20 features, concurrency, the Core Guidelines, and upcoming standards.

    Visit blogRSSHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN links it as a reference for C++ topics like thread-safe initialization, consteval, and coroutines.

    Stats for nerds
    35HN people shared it
    116linked in comments
    905story points
    Mar 2026last shared
    2016people per year2026

    Top posts on HN

    1. 1
      C++ 20: The Core Language
      2 people · 283 points · first shared 2019 · 272 comments on HN
    2. 2
      Multithreading in modern C++
      1 person · 115 points · first shared 2016 · 39 comments on HN
    3. 3
      Latches in C++20
      1 person · 106 points · first shared 2021 · 83 comments on HN
    4. 4
      The C++ programmer and educator Rainer Grimm has passed away
      1 person · 104 points · first shared 2025 · 11 comments on HN
    5. 5
      An Improved Thread with C++20
      1 person · 68 points · first shared 2021 · 66 comments on HN
    6. 6
      Bit Manipulation with C++20
      1 person · 13 points · first shared 2020 · 1 comments on HN
    7. 7
      Hazard Pointers in C++26
      1 person · 12 points · first shared 2025 · 3 comments on HN
    8. 8
      C++20: Concepts, ranges, coroutines, modules
      2 people · 10 points · first shared 2019 · Discussion on HN
    9. 9
      An Overview of C++26: Concurrency
      1 person · 10 points · first shared 2024 · Discussion on HN
    10. 10
      A Brief Overview of the PVS-Studio Static Code Analyzer
      2 people · 6 points · first shared 2019 · Discussion on HN

    What HN people wrote when they linked it

    • lioetersMar 2020

      > ..The node_modules package resolution algorithm is how JS does namespaces.. I wonder whether they got that right through sheer genius, or by accident.

      I recall hearing Ryan Dahl's regrets about design decisions in Node.js, a few of which had to do with the module/package resolution algorithm.

      10 Things I Regret about Node.js - https://www.youtube.com/watch?v=M3BM9TB-8yA

      There are some good aspects of it though. I like how modules/packages are just imported objects (the path resolution is a bit weird and seemingly inefficient, i.e., checking every parent folder's node_modules folder). It goes together well, that modules are also self-contained function scopes by default (I suppose a kind of anonymous namespace), that exports a plain object with assigned properties.

      ---

      Wow, I just learned about C++20 Modules, looks like a game-changing feature.

      https://modernescpp.com/index.php/c-20-modules

    • mschuetzSep 2018

      > That's just a C# idiom

      Not just C#, Python and JS also have it already. And async-await is the first time ever where I've thought that yes, this is a good way to do single-threaded async (event-queue-ish) or even multi-threaded things.

      > Check POCO.

      Thanks for the hint, I will check it out.

      > but somehow you're complaining that C++'s interfaces require programmers to specify where the collections should start and finnish.

      Take a look at: http://www.modernescpp.com/index.php/higher-order-functions
      The c++ functions are unnecesarely verbose compared to other languages.

      This

      transform(vec.begin(), vec.end(), vec.begin(),[](int i){
      return i*i;
      });

      could be much more readable as

      vec.map([](int i){
      return i*i;
      });

      Also makes for-of the better choice in my opinion because if you're going to write more code, I'd rather write code that is readable.

    • tradrichSep 2022

      How do HFT developers actually achieve single-digit microsecond latency?

      Why would you want to bypass the kernel?

      Can C++ model semantic categories as elegantly as Haskell?

      Can you actually get a job doing this stuff?

      We'll cover all this stuff next Tuesday 6pm UK time - that's 1pm US East.

      So bring your dinner (or lunch) and come ready with questions for

      Antony Peacock: senior developer in low latency trading and technical expert on the ISO C++ committee

      Rainer Grimm: Renowned C++ and Python trainer, author and mentor at Modernes C++[1]

      Richard Hickling: Trading and risk technology expert and Co-Founder at ProfitView[2]

      [1]: https://www.modernescpp.com/
      [2]: https://profitview.net/

    • cesarbApr 2018

      Having started using the Internet in the 90's, and thus still remembering Geocities-era websites, I loved that they did this as a webring (https://en.wikipedia.org/wiki/Webring): each blog post has a link to the next one, making a singly-linked circular list.

      Starting with this one, we have:

      - http://www.bfilipek.com/2018/04/deprecating-pointers.html

      - http://www.modernescpp.com/index.php/no-new-new

      - https://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/

      - https://blog.tartanllama.xyz/no-pointers/

      - https://arne-mertz.de/2018/04/raw-pointers-are-gone/

      And it circles back to this one.

    • viraptorMar 2018

      Many. I like bashing C++ as much as the next dev, but modern C++ has nice type checks, interesting types/wrappers which help with common patterns (shared, unique ptrs, etc), and the compilers learned some great tricks which allow you to run memory safety checks yourself. (Asan and others)

      Also multithreading gets some improvements which will take more of the manual sync details away from the business logic. (http://www.modernescpp.com/index.php/multithreading-in-c-17-and-c-20)

      It's still delivered attached to a foot-gun, but you could do worse.

    • twicDec 2022

      > Are compilers required to evaluate constexpr expressions at compile time, where possible?

      No. But C++20 adds consteval, which does carry that requirement:

      https://www.modernescpp.com/index.php/c-20-consteval-and-constinit

      Well, sort of. It has to produce a constant expression, and in practice the way to do that is to evaluate it at compile-time. But under the as-if rule, a compiler can do what it likes, up to and including producing a binary containing your source code and a copy of gcc, and compiling your entire program when you run it.

    Related

    Bartek's Coding Blogbfilipek.com49 people

    Coding without Google

    Bartek's Coding Blog
    Personal · last shared 2021
    Eric Nieblerericniebler.com22 people

    C++20 Ranges

    Eric Niebler
    Personal · last shared 2024
    Arne Mertzarne-mertz.de26 people

    Modern C++ Features – std::optional

    Arne Mertz
    Personal · last shared 2024
    Fluent C++fluentcpp.com66 people

    Technical Debt Is Like a Tetris Game

    Fluent C++
    Personal · last shared 2025
    Marius Bancilamariusbancila.ro25 people

    What's new in C++26 (part 1)

    Marius Bancila
    Personal · last shared 2026
    C++ Storiescppstories.com35 people

    Embracing Modern C++ Safely, Book Review

    C++ Stories
    Personal · last shared 2026
    Martin Hořeňovskýcodingnest.com25 people

    Modern SAT solvers: fast, neat and underused

    Martin Hořeňovský
    Personal · last shared 2026
    Andrzej's C++ blogakrzemi1.wordpress.com35 people

    A bug in GCC that may cause memory leaks in valid C++ programs

    Andrzej's C++ blog
    Personal · last shared 2025