Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Microsoft releases free optimizing C++ compiler (Read 7677 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Microsoft releases free optimizing C++ compiler

Reply #25
Quote
Does anyone know if this compiler supports more of C99?

No, it doesn't support C99 in it's entirety. Small C99 changes like C++ style comments, longer identifier names etc. have been around for ages, but not the large ones.

Microsoft and msdn.com are both totally silent about C99 -- as a very interested programmer I tried to search for C99 compliance documents, without any success. It seems very likely that MS is just going to ignore C99 completely. I guess it makes sense since MS is currently pushing C++ and .NET so much.

C99 will have a pretty grim future if only GCC cares to implement it

Microsoft releases free optimizing C++ compiler

Reply #26
I won't get myself involved in the Microsoft versus Linux debate since I think it's rather irrelevant, even though I'm a big supporter of open source.  VCToolkit 2003 only runs on Windows so I don't see how this affects Linux.  If Microsoft released a linux version of it, then it would certain raise an eyebrow.

Anyway, I think the only use of VCToolkit 2003 is learning C++ and compiling simple non-MFC programs.

EDIT:  Just downloaded and installed it.  It doesn't include MFC.

Microsoft releases free optimizing C++ compiler

Reply #27
Quote
Anyway, I think the only use of VCToolkit 2003 is learning C++ and compiling simple non-MFC programs.

You need to install the Platform SDK to build GUI apps.  Yeah, it's a pretty bare-bones release.  It only includes the compiler and linker.  Other utilities, such as lib and nmake are missing  ...an incentive for you to upgrade to Visual Studio.

Microsoft releases free optimizing C++ compiler

Reply #28
Quote
No, it doesn't support C99 in it's entirety. Small C99 changes like C++ style comments, longer identifier names etc. have been around for ages, but not the large ones.

Microsoft and msdn.com are both totally silent about C99 -- as a very interested programmer I tried to search for C99 compliance documents, without any success. It seems very likely that MS is just going to ignore C99 completely. I guess it makes sense since MS is currently pushing C++ and .NET so much.

C99 will have a pretty grim future if only GCC cares to implement it

I believe this is the page I read about it the first time, but I also found another page which had a fairly good quote about MS and C99

AFAIK most other compilers at least have rudimentary support for C99, and it seems like even the Intel compiler has support for some of basic features.

What I miss, though, is "for (int i = 0; i < 10; i++);" and the C++ initialisers. They really make you're code much more readable

Microsoft releases free optimizing C++ compiler

Reply #29
From danchr's second link:

Quote
There are a couple of features of the ANSI/ISO standard (for instance the ‘export’ keyword as applied to template classes) that won’t be implemented because they are considered by Microsoft to be obscure and, at this stage, theoretical.


Ok, fine, but those "obscure" things still are parts of the standard and people do rely on the compilers to support this standard as fully as possible

Well, it's not like it's the first time Microsoft bends standards as it sees fit.

So, the important features of C99 aren't probably going to get implented. Too bad, I was really looking forward to variable length arrays, as they would eliminate a whole category of forced malloc calls.

Microsoft releases free optimizing C++ compiler

Reply #30
Quote
Borland are pretty much out of business these days. I wonder why?

>SELECT clue FROM members WHERE member_name = 'MuMart';

CLUE
====
0
Over thinking, over analyzing separates the body from the mind.

Microsoft releases free optimizing C++ compiler

Reply #31
Cool! SQL clue database

Microsoft releases free optimizing C++ compiler

Reply #32
Quote
Ok, fine, but those "obscure" things still are parts of the standard and people do rely on the compliers to support this standard as fully as possible

Well, I don't know whether partial specialization and other advanced template stuff is already supported in the new MS compiler (I haven't tested it yet), but if that's out of the way then export would be the only major feature I can think of that they don't support. And as far as I know there (unfortunately) is only one compiler that supports the export keyword anyhow (forgot which one, but you should be able to find something about it).
If they still haven't got support for those extremely useful template features, then I think you might have some reason to complain, although I wouldn't call it a reason not to use the compiler at all (as some people in this thread suggest). Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.

Microsoft releases free optimizing C++ compiler

Reply #33
Quote
And as far as I know there (unfortunately) is only one compiler that supports the export keyword anyhow (forgot which one, but you should be able to find something about it).

The Comeau C++ compiler supports the export keyword, but it's neither very common nor free.

Quote
Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.


Actually I'm more bothered by Microsoft's "we're not going to implement something just because it's in the standard" attitude. Fine, I'm not going to stop pirating Microsoft products just because it's in the law

I pretty much use the VS.NET 2003 compiler for all of my C++ compiling needs, and besides that previous comment, I've stopped hating MS since Windows 2000 or something.

Offering the optimizing VS.NET 2003 C++ compiler for free is a very important landmark in the history of the Microsoft corporation. I can't say that I'm surprised though, since the .NET developing tools have been free for quite a while now, and those already included a C++ compiler without the C/C++ standard headers.

I don't understand why the stockholders would be angry at this since the actual compiler is commercially rather meaningless in the Visual Studio product line -- it's the VS IDE people are willing to pay money for, and given that it's a pretty damn good IDE, Microsoft has every right to charge money from it.

As a conclusion, I would like to say that Microsoft's conduct has been improving constantly, and has lately been a lot better than for example, Sun's. How's that Java standard coming up, Sun?

If Microsoft would ditch the diabolical product activation scheme, then I would be pretty much out of complaints

Microsoft releases free optimizing C++ compiler

Reply #34
Quote
Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.

The entire point with standards is that many of these oddities are recognised as what they are: bugs. The ISO C99 standard has a lot of very useful features, which makes you're C compiler less "dumb". Using named struct and array initialisers, variable length arrays, inline functions, compound initialisers and declerations anywhere gives you a fairly powerful compile-time type checker and increased flexibility. Also, C99 mandates many functions previously only found in POSIX and friends, making it much easier to stick to the standard.

The reason for standards is that you can require and assume compliance to them. Microsoft has no interest in the increased interoperability that is a result of them.

 

Microsoft releases free optimizing C++ compiler

Reply #35
I agree it would be nice if MSVC supported C99, but that doesn't mean its C implementation is buggy, it just doesn't support C99. Microsoft's C implementation is reasonably good as far as I can tell. It's C++ implementation in VC6 and earlier wasn't so good, I'm still not clear on what the situation is with VC7, but judging from the config files for STLPort and Boost I'd say at least VC7.1 (?, _MSC_VER 1310) is quite a bit better than VC6 in this respect.