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
    B

    Bartek's Coding Blog

    bfilipek.com · Personal blog · on HN since 2013

    Bartek Filipek writes in-depth posts on modern C++ features, covering C++17 and C++20 topics such as variant, SFINAE, and parallel algorithms.

    Visit blogHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN commenters recommend it as a great C++ blog that covers each feature at length, plus his C++17 book and survey data on C++ use.

    Stats for nerds
    49HN people shared it
    219linked in comments
    2.1Kstory points
    May 2020last shared
    2017people per year2020

    Top posts on HN

    1. 1
      Coding without Google
      1 person · 274 points · first shared 2016 · 199 comments on HN
    2. 2
      C++ Ecosystem: Compilers, IDEs, Tools, Testing
      1 person · 194 points · first shared 2019 · 145 comments on HN
    3. 3
      Deprecating Raw Pointers in C++20
      3 people · 179 points · first shared 2018 · 78 comments on HN
    4. 4
      Examples of Parallel Algorithms from C++17
      1 person · 151 points · first shared 2018 · 36 comments on HN
    5. 5
      C++20 Reference Card
      2 people · 119 points · first shared 2020 · 42 comments on HN
    6. 6
      Syntax changes from C++11 to C++20
      1 person · 119 points · first shared 2020 · 132 comments on HN
    7. 7
      Programmer’s Guide to Performance Analysis and Tuning on Modern CPUs
      1 person · 101 points · first shared 2019 · 7 comments on HN
    8. 8
      Lambdas: From C++11 to C++20, Part 2
      1 person · 98 points · first shared 2019 · 36 comments on HN
    9. 9
      C++ Status at the end of 2015
      1 person · 79 points · first shared 2015 · 60 comments on HN
    10. 10
      C++: Vector of Objects vs. Vector of Pointers
      2 people · 69 points · first shared 2014 · 50 comments on HN

    What HN people wrote when they linked it

    • bluescarniMay 2020

      > So you're saying if the code was higher quality it would have fewer bugs? I mean, well, yeah.

      That's not what I am saying, at all. You cannot do RAII in C.

      My point was that I believe that most of the bugs under discussion here would not have happened if a language that provides RAII capabilities had been used.

      > The problem with solutions like RAII is that it doubles down on programmer infallibility, from "good programmers don't write bugs" to "good programmers correctly use RAII."
      > You haven't really solved the actual problem unless you have tooling available that won't let non-RAII be checked in at all. Does that exist?

      I don't understand what you are trying to say honestly.

      If you think that RAII requires the same level of attention and care as manual malloc()/free()/new/delete, then this makes me wonder if you even know what the point of RAII is. Given the same "programmer quality" (for the lack of a better term), the use of RAII will certainly reduce the occurrence of memory mismanagement bugs.

      For the tooling, you can use clang-tidy in C++ to enforce the use of smart pointers, make_unique, etc. E.g., see:

      https://www.bfilipek.com/2017/12/why-uniqueptr.html

      (I am sure there are other static checkers around that can spot the use of manual memory management functions, it's an easy thing to check for).

      So, please don't put words in my mouth. The claim was never that RAII gives you the mathematical certainty of the absence of certain classes of bugs. Rather the…

    • arcticbullJul 2019

      Not all of them, to be sure, lambdas and in particular their capture list syntax is solid. By no means is that universal though, for instance, move semantics.

      std::move doesn't move anything, it casts an object as a movable reference (equivalent to static_cast<T&&>). The compiler doesn't preclude you from accessing the old object (or say anything at all) and there's no guarantee it actually did get moved, it's just a hint. That's not real move semantics, it's a shoddy knock-off.

      You also have to manage a new constructor, new reference type and the opt-in because the default remains not using move semantics. Worse yet, there's varying agreement on what you can or should do with the source of a moved value, the STL containers will all continue to let you use the old value, it's just empty now. That's not standard behavior because there is none, and it's de facto now because it's in the STL. What a nightmare. [1]

      std::variant is supposed to be associated values on enums, but of course, it doesn't do that either. You don't match, you create a new struct with a bunch of operator() methods on it [or overload a lambda?!] and throw it at std::visit. You can only have one variant of each type. Then it throws exceptions if you start mucking about in ways you shouldn't. There's no context. It's dreadful. [2]

      [1] http://yacoder.guru/blog/2015/03/14/cpp-curiosities-std-move-that-doesnt-move/

      [2] https://www.bfilipek.com/2018/06/variant.html

    • 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.

    • smitherfieldFeb 2018

      Should be noted that so far only Visual Studio (partially) implements C++17 parallel algorithms, although there are several third-party implementations.[1]

      Apples to oranges comparison of course, since Rayon isn't [planned to become?] part of the Rust standard library.

      [1] http://www.bfilipek.com/2017/08/cpp17-details-parallel.html#current-implementation

    • pjmlpJan 2020

      According to most surveys, they aren't used as much on real life.

      Here 14%, https://www.jetbrains.com/lp/devecosystem-2019/cpp/

      Here 40 - 55%, https://www.bfilipek.com/2019/12/cpp-status-2019.html

      At CppCon 2015 or something, at Herb's question during his keynote, about 1% of the audience as per his comment on the video.

    • lmmNov 2019

      > You have std::variant and std::visit. https://www.bfilipek.com/2018/09/visit-variants.html

      Which isn't a true sum type because it doesn't nest properly.

      > Or you can use a library: https://github.com/mpark/patterns

      Interesting; proper pattern-matching is nice, but the lack of type safety is still a major issue.

    Related

    Visual C++ Team Blogblogs.msdn.microsoft.com/vcblog86 people

    Visual C++ for Linux Development

    Visual C++ Team Blog
    Company · last shared 2019
    Modernes C++modernescpp.com35 people

    C++ 20: The Core Language

    Modernes C++
    Personal · last shared 2026
    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
    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
    PVS-Studio Blogviva64.com135 people

    Criticizing the Rust Language, and Why C/C++ Will Never Die

    PVS-Studio Blog
    Company · last shared 2021
    foonathanfoonathan.net35 people

    Carbon’s most exciting feature is its calling convention

    foonathan
    Personal · last shared 2026
    Barry Revzinbrevzin.github.io31 people

    Comparisons in C++20

    Barry Revzin
    Personal · last shared 2026