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?
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.
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?
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.
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?
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.
Thanks. I didnβt know about these advanced libraries, and had not heard of C++ modules either. Appreciate the explanation.
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?
I guess thatβs the joke, and I think weβre all confused because itβs wrong.
Templates can now be defined somewhere else. Itβs a small improvement that no one uses.
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.
deleted by creator