• suy@programming.dev
    link
    fedilink
    arrow-up
    16
    ·
    8 months ago

    I’m not fully sure what the intent of the joke is, but note that yes, it’s true that a header typically just has the prototype. However, tons of more advanced libraries are “header-only”. Everything is in a single header originally, in development, or it’s a collection of headers (that optionally gets “amalgamated” as a single header). This is sometimes done intentionally to simplify integration of the library (“just copy this files to your repo, or add it as a submodule”), but sometimes it’s entirely necessary because the code is just template code that needs to be in a header.

    C++ 20 adds modules, and the situation is a bit more involved, but I’m not confident enough of elaborating on this. :) Compile times are much better, but it’s something that the build system and the compilers needs to support.

    • bugsmith@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      Thanks. I didn’t know about these advanced libraries, and had not heard of C++ modules either. Appreciate the explanation.