this post was submitted on 22 Mar 2024
120 points (90.5% liked)

Programmer Humor

19443 readers
37 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] bugsmith 22 points 7 months ago (7 children)

I don't code in C++ (although I'm somewhat familiar with the syntax). My understanding is the header files should only contain prototypes / signatures, not actual implementations. But that doesn't seem to be the case here. Have I misunderstood, or is that part of the joke?

[–] suy 18 points 7 months ago (1 children)

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 3 points 7 months ago

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

load more comments (5 replies)