120
True Story (lemmy.world)
you are viewing a single comment's thread
view the rest of the comments
[-] bugsmith@programming.dev 21 points 4 months ago

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@programming.dev 17 points 4 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 3 points 4 months ago

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

[-] Scoopta@programming.dev 5 points 4 months ago* (last edited 4 months ago)

Not a C++ developer, I prefer C. You are right in general however my understanding is that classes which are generic using templates must be fully implemented in header files because of how templates are implemented. That being said this code doesn't appear to use templates so I'm not entirely sure I get it either?

[-] Kethal@lemmy.world 2 points 4 months ago

I guess that's the joke, and I think we're all confused because it's wrong.

[-] best_username_ever@sh.itjust.works 1 points 3 months ago

Templates can now be defined somewhere else. It’s a small improvement that no one uses.

[-] Ephera@lemmy.ml 3 points 4 months ago

Well, it's even just horrid code, because they're reading user input in some random associated function, so I think, it's safe to say that this is supposed to be horrid code.

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

Programmer Humor

18872 readers
903 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