<ja**********@g mail.com> wrote in message
news:11******** **************@ i39g2000cwa.goo glegroups.com.. .
MS don't own C++ either but none of their header files will work with an
ISO
standard compiler so effectively they have a separate language. <<
This is complete nonsense. The very purpose of system header files is
to isolate complier dependant code (so that a user program which
includes a such a header file can be standardized). The ISO C++
Standard make no requirements on the headers files at all --- They
don't even have to actually exist. The only requirement is that if a
user program contains the code (for example) "#include <iostream>" then
certain identifiers must be defined. How exactly a compiler
accomplishes that is purely it's concern.
I agree with what you are saying is strictly correct but that's not really
my point.
The Windows API (not the C++ std headers) makes extensive use of
non-standard keywords and pragmas.
This means that you cannot write much windows code without knowing those
keywords and pragmas and therefore it is effectively a different language.
Open any windows project and you will find some __somethingOrOt her somewhere
and then there are LPCSTR et al - Yes they are only macros but they are used
so extensively in windows code that you have to know them and you could be
forgiven for thinking that they were keywords.
When I first saw a windows C++ program I was totally confused despite many
years of working with C++ on varous POSIX compliant systems. I created
something or other using a wizard (it was a while ago and I forget the
details) and the mess it generated was so full of double underscores,
pragmas and non-syntatctic macros that VS didn't even recognize it as a
class for syntax highlighting! I ran away in terror and I've only come back
to windows now that C# and .NET have made it intelligible.