Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
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
    Cover of Modern C[plus plus] design

    Modern C[plus plus] design

    Andrei Alexandrescu · 2000

    ProgrammingComputer Science
    Open LibraryAmazon
    Stats for nerds
    1recommend
    6mentions
    6people
    2017–2025years
    17% recommend67% neutral17% critical

    Mentions per year

    201720182019202020212022202320242025

    What Hacker News says

    1. sclangdonJun 2017
      When this article refers to the term "modern C++" it seems to be talking about Andrei Alexandrescu's now 16 year old notion of modern C++ [1], not the C++11 and newer notion [2].

      [1] Addmittedly, Andrei's notion is still completely relevant today (and still, imo, the best C++ book available) but I don't think it's what most people think of when they hear the term "modern c++" these days. - https://en.wikipedia.org/wiki/Modern_C%2B%2B_Design

      [2] https://github.com/isocpp/CppCoreGuidelines/blob/master/CppC...

      thread
    2. lll-o-lllAug 2025
      Yuck. I thought some of the signatures you end up with when building “Modern C++” in the Andrei Alexandrescu style were hairy, but this looks sick. Not in a good way.

      Probably does something cool for all that crazy though?

      thread
    3. pjmlpAug 2024
      Beyond discussing what Modern C++ actually means, Andrei Alexandrescu book, C++11, C++14, C++17, C++20, C++23, this only goes to show how "modern" is the C++ code from companies that should know better as WG21 members, and C++ compiler vendors.

      Let alone those that aren't neither WG21 members, nor C++ compiler vendors.

      thread
    4. floxyAug 2024
      Seems like we might be in the post-modern C++ age, since the Andrei Alexandrescu "Modern C++" book came out in 2001.
      thread
    5. fuzztesterJul 2024
      Sure, I will let you say it :)

      Let me say that I think the same about this comment of yours upthread:

      >>D would deserve attention too, in a separate post, or here if it was explained how it relates to Aro.

      In case you cannot or don't want to google for some reason, here are the Wikipedia articles about D, Walter and Andrei, and important related topics (all on Wikipedia, which implies notability) that I suggested you look up, above:

      https://en.m.wikipedia.org/wiki/Walter_Bright

      https://en.m.wikipedia.org/wiki/Zortech_C%2B%2B

      https://en.m.wikipedia.org/wiki/Empire_(1977_video_game)

      https://en.m.wikipedia.org/wiki/D_(programming_language)

      https://en.m.wikipedia.org/wiki/Andrei_Alexandrescu

      https://en.m.wikipedia.org/wiki/Modern_C%2B%2B_Design

      https://en.m.wikipedia.org/wiki/C%2B%2B

      Edit: spelling

      thread
    6. nwallinDec 2018
      Yes, it's a way better language than it used to be.

      * They added smart pointers that actually work. (std::unique_ptr and std::smart_ptr) Invoking delete is considered a code smell in C++11, and new is considered a code smell in C++14. (because of make_unique and make_shared, added in C++14)

      * Dynamic polymorphism (via inheritance) has gone out of style. These days it's templates all the way down, which aren't terrible anymore for a wide variety of reasons that I don't have time to go into.

      * Threads and safe locking mechanisms are now actually standardized, so you don't have to use boost::thread. std::async, lambdas, and std::future provide reasonable syntactic sugar around threading, as opposed to manually mucking around with your own thread pool.

      * Stuff that used to require library writers to dig around in the bowels of template metaprogramming became a lot easier with `if constexpr` in C++17. Actually that's one of the reasons why templates aren't terrible anymore, sorry for going into it when I said I wouldn't.

      Idiomatic C++17 code feels like a completely different language than C++03. Ye olden C++ felt like Java with spike traps and no garbage collector, but idiomatic C++17 feels like... I dunno, Rust without the borrow checker and everything is in an unsafe block. (I'm trying to think of a better example)

      (as an aside, there are two different things called "modern c++". I'm pretty sure it's a joke, but it's a terrible one. There's Andrei Alexandrescu's 2001 book Modern C++, and there is are the coding practices that evolved out of the development of C++11/14/17.)

      Source: I maintain a ye olden C++ codebase at work, and write modern C++17 in my personal projects. The degree to which they differ is profound. I'm not doing the difference justice.

      thread

    Related

    Cover of The design and evolution of C[plus plus]
    2008–2026

    The design and evolution of C[plus plus]

    Bjarne Stroustrup
    38 recommend · 120
    Cover of Modern C++ Design
    2007–2026

    Modern C++ Design

    Andrei Alexandrescu
    29 recommend · 83
    Cover of Modern C
    2015–2025

    Modern C

    Jens Gustedt
    37 recommend · 55
    Cover of The C Programming Language
    2007–2026

    The C Programming Language

    Brian W. Kernighan
    246 recommend · 604
    Cover of Large-scale C[plus plus] software design
    2011–2024

    Large-scale C[plus plus] software design

    John Lakos
    6 recommend · 14
    Cover of 21st Century C
    2012–2024

    21st Century C

    Ben Klemens
    42 recommend · 71
    Cover of The Standard C Library
    2009–2026

    The Standard C Library

    P. J. Plauger
    17 recommend · 29
    Cover of Modern compiler implementation in C
    2010–2024

    Modern compiler implementation in C

    Andrew W. Appel
    8 recommend · 13