Am Thu, Jun 20, 2024 at 11:53:45PM +0200 schrieb Страхиња Радић: > Given that, why complicate code by introducing a separate, superfluous, > type?
Let me offer a counterpoint: Expressiveness. If I make a function return a bool, then everyone from the world's worst junior dev to Ken Thompson himself will be able to see at the very first glance that the function is returning a boolean value. If I make a function return an int, that is not so clear. That said, if a function returns bool and is longer than one or two statements, it is probably already doing something wrong. I have seen bool used as error code, and it is such a missed opportunity to return an enum of error codes to say what actually went wrong. > Every new iteration of C after C99 introduced more unnecessary cruft. > C99 is the best version, although it has its rough edges, one of which > is the _Bool type. > All versions of C after C89 added more stuff that wasn't there before. That is mostly the point. You cannot remove things without introducing an incompatibility. So the only thing I can remember that was ever removed was gets(), which was a bad idea from the start, and finally removed in C11. I don't know, to me statements like "C99 is the best version" are always funny. Not so long ago, this very list opined that C89 is the only true C standard and everything that came after is "not C", as I recall. Which is literally wrong, of course (C is whatever WG14 says it is, whether you like it or not). Isn't it all about familiarity in the end? Or can you articulate what parts of C11 and C23 you find objectionable? Ciao, Markus