But when Richard Heathfield told me to "vote with my feet" I started
thinking that the same could be said for features that are implemented on
your implementation but not on others.
If you are writing code that *must* do something that is outside of the
standard for C, then you must abandon the project, or develop platform
dependent code. Of course, if you are careful you can isolate those
bits so that 95%+ of the remaining program is still within the
"sandbox" so to speak.
That doesn't mean that if a compiler supports doing something wrong,
AND supports doing it correctly, that you should do it the wrong
way just because you can get away with it. Similarly, if more
than one compiler is available, one of which lets you write code
portably to achieve you objectives while another does not, why on
earth (apart from management BS) would you have to use the latter?
But then why is the emphasize in clc on portability?
Because there are numerous platform-specific newsgroups that help people
with the non-portable bits. In each of those, the audience is
specifically attuned to a particular platform and you are much more likely
to get an accurate answer. A group where people from a LOT of different
platforms hang out answer such a question, you're likely to get more
than a few wrong answers, or miss getting a correct answer at all.
So, if you know that asking a platform-dependent question about pthreads
programming is 5% likely to get a good answer in c.l.c, and 95% likely to
get you a flame and a pointer to the FAQ, whereas posting the same
question to comp.programming.threads is going to have inverse statistics
to those, why would you bother to worry about it in this newsgroup?