42 karma · joined February 27, 2020
Wait, isn't this a fictitious company from breaking bad?
Relaxed atomics are still data-race free, did you mean non-atomic accesses?
As long as you use --icf=safe I don't see any drawback, and most of the time it results in almost identical reductions to --icf=all since not many real programs compare addresses of functions.
Stackless coroutines do not have this requirement, it is enough to be able to know the required frame size locally, without considering recursion/indirection. And fallback heap allocations are not surprising since we do not statically know the required frame size at the call site. Segmented stacks have their own tradeoffs too, checking if you have enough stack space at every function entry is not cheap.
However, in C++98, how else would you handle when you have an arbitrary number of things to print in a type-safe way? e.g.
cout << myInt << ": " << something << " - " << otherthing << " - " << etc << '\n';
printf is not type-safe, nor supports user defined types. I'd rather not write 8 lines of functions calls for the same thing either.I think it made some sense C++98, though it is an awful API in 2021.
If you mean cmake versions, I'm not sure what you expect, should cmake just freeze in time and stop adding features so someone gets to use cmake from 5 years ago?
Also, the bit about autotools on windows is silly. If it can't build native windows stuff, it's not at all viable for windows.
I also dislike cmake (particularly dependency management) and wish for something better, but I think our criticisms should be well-founded.
Also, I agree that implicit conversions in general should be avoided, but this complex number example feels like the perfect use case.
What? C will happily compile this:
void g() {
float f = 3.14;
int* ip = &f;
}
C++ has no such _craziness_. Your strawman actually has pretty good uses: complex c = 3i;
... = c + 4;
Would you rather have the last line not compile because 4 is not a complex number? Because one _could_ argue that 4 is a complex number, and C++ can represent this with an implicit constructor.The issue with C++ is that implicit is the default, not that it exists.
Please do explain the behavior of calling an uninitialized function pointer on x86 if you insist.
I have hacked something on a protoboard for nodemcus before, but it ended up being pretty messy.