| ▲ | ranger_danger an hour ago | |
In C, assigning the return value from malloc() to a specific type merely produces a warning:
Whereas in C++ it's a hard error:
Does this not count as "more type safe" to you? | ||
| ▲ | 1718627440 a few seconds ago | parent [-] | |
No, this counts as C++ is stupid to me. The memory returned by malloc is UNTYPED. The sole reason why void as a type exists is to convey the notion of no type, so that it needs to be assigned to a type by a programmer. If you mean "byte region, please cast before use" that's 'char *'. Since C++ now forces me to write a cast, it effectively forces me to hide and silence errors. I do want an error when I violate types, I do not want it for void, because that's the whole meaning of void. C++ manages to make it the worst of both worlds. | ||