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
    A

    Anders Knatten

    blog.knatten.org · Personal blog · on HN since 2012

    Anders Knatten, a C++ developer, writes about the language's value categories, type system and quirks.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    HN commenters recommend his explanation of lvalues, rvalues, glvalues, prvalues and xvalues as clear and helpful for understanding move semantics.

    Stats for nerds
    15HN people shared it
    23linked in comments
    412story points
    Nov 2025last shared

    Top posts on HN

    1. 1
      Lvalues, rvalues, glvalues, prvalues, xvalues, help (2018)
      5 people · 249 points · first shared 2018 · 92 comments on HN
    2. 2
      A prvalue is not a temporary
      1 person · 79 points · first shared 2025 · 63 comments on HN
    3. 3
      The type of char + char
      4 people · 62 points · first shared 2019 · 45 comments on HN
    4. 4
      A Taxonomy of C++ Types
      2 people · 4 points · first shared 2025 · Discussion on HN
    5. 5
      Very Strong C++ Track at the NDC Conference
      2 people · 2 points · first shared 2014 · Discussion on HN
    6. 6
      C++ on a Friday: +“”
      1 person · 2 points · first shared 2018 · Discussion on HN
    7. 7
      I Wrote a C++ Book
      1 person · 2 points · first shared 2024 · Discussion on HN
    8. 8
      We probably shouldn’t have constexpr conditional operator
      1 person · 2 points · first shared 2023 · Discussion on HN
    9. 9
      Another Reason to Avoid #includes in Headers
      1 person · 2 points · first shared 2012 · 1 comments on HN
    10. 10
      Microsoft C++ Versions Explained
      1 person · 2 points · first shared 2022 · Discussion on HN

    What HN people wrote when they linked it

    • cjensenNov 2025

      He has a good article on that at [1]

      But here's the gist: sometimes you have an object you want to copy, but then abandon the original. Maybe it's to return an object from a function. Maybe it's to insert the object into a larger structure. In these cases, copying can be expensive and it would be nice if you could just "raid" the original object to steal bits of it and construct the "copy" out of the raided bits. C++11 enabled this with rvalue references, std::move, and rvalue reference constructors.

      This added a lot of "what the hell is this" to C++ code and a lot of new mental-model stuff to track for programmers. I understand why it was all added, but I have deep misgivings about the added complexity.

      [1] https://blog.knatten.org/2018/03/09/lvalues-rvalues-glvalues-prvalues-xvalues-help/

    • spacechild1Nov 2025

      This is actually a very nice explanation!

      I also enjoyed the linked article about the 5 value types: https://blog.knatten.org/2018/03/09/lvalues-rvalues-glvalues-prvalues-xvalues-help/. For some reason I never bothered to look up these terms as they sounded so obscure. Turns out the taxonomy is pretty clear and it's just a refinement of the existing two value types (lvalues and rvalues).

      EDIT: I do think the naming is rather confusing and inconsistent, though.

    Related

    Arne Mertzarne-mertz.de26 people

    Modern C++ Features – std::optional

    Arne Mertz
    Personal · last shared 2024
    Oleg Kiselyovokmij.org251 people

    How the OCaml type checker works (2022)

    Oleg Kiselyov
    Personal · last shared 2026
    PRL Blogprl.ccs.neu.edu24 people

    Measuring GC latencies in Haskell, OCaml, Racket

    PRL Blog
    Company · last shared 2022
    Yossi Kreininyosefk.com387 people

    Yosefk - My history with Forth & stack machines

    Yossi Kreinin
    Personal · last shared 2026
    Juha Nieminenwarp.povusers.org22 people

    Why C++ is vastly superior to C

    Juha Nieminen
    Personal · last shared 2025
    Henri Sivonenhsivonen.fi47 people

    String Lengths in Unicode

    Henri Sivonen
    Personal · last shared 2025
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Alexis Kinglexi-lambda.github.io172 people

    Parse, Don’t Validate

    Alexis King
    Personal · last shared 2026