Which Are The Best Compilers For C++ and C . I Was Using Dev-C++ Till This date , I Just Upgraded From Windows 7 to 8 , Any Good Compilers ? Thank You !

Recommended Answers

All 13 Replies

Visual Studio 2012 (November update).

Way ahead of GCC (the other major contender) in C++11 conformance - Microsoft has implemented almost everything in the standard.

clang 3.2 with its libc++ is on par with VS 2012; and it is somewhat more mature and stable in comparison. But it has to be built from sources; and installing it is not an easy task for everyone.

Microsoft has implemented almost everything in the standard.

Aroo?

I'd say they've implemented almost everything "easy" in the standard, plus partial concurrency. Variadic templates, constexpr, defaulted/deleted functions, and initializer lists are glaring pain points in VC11 that GCC has. The library is thankfully full featured in VC11, relative to the core language, but that's because they've hacked workarounds in to deal with missing features.

Barring concurrency (admittedly a big deal), GCC is further along in terms of core language support. The library doesn't seem to be up to par though.

Visual Studio 2012 (November update).

Way ahead of GCC (the other major contender) in C++11 conformance - Microsoft has implemented almost everything in the standard.

clang 3.2 with its libc++ is on par with VS 2012; and it is somewhat more mature and stable in comparison. But it has to be built from sources; and installing it is not an easy task for everyone.

Whoa... With all due respect, vijayan121, I think you are quite a ways off here. In any case, the question is not about which is the best C++11 compiler.

Overall, if any compiler is way ahead of the competition, it is the Intel compiler (ICC), it leaves the other compilers in a trail of dust with respect to code optimization and compiling speed. And the main contender to ICC is GCC, and then, a bit further behind is Clang. While the Microsoft compiler is not really competing (by their own admission), their aim is just to try and make MSVC usable, which it barely is (the "professional" alternative is to use Visual Studio IDE with the Intel compiler).

@deceptikon: The November update of MSVC11 did add support for, most notably: variadic templates, initializer-lists, and delegating constructors. This does move MSVC up to a respectable amount of support for C++11 features, about on par with the Intel compiler (in terms of C++11 feature support only). Of course, Intel is ahead on concurrency, as expected. MSVC is ahead of GCC on concurrency, which is a big deal. But overall, GCC is ahead of the rest for C++11 features & library support.

For concurrency features and the threading library, MSVC has a much easier task because they only need to target Windows, and can be very tightly integrated with it. For GCC, ICC, Clang, and others, the task is much more monumental at supporting (and optimizing for) different platforms and target architectures.

And after that, the <regex> library is the main thing that is missing from GCC's library support, and it is also missing from all other implementations (including MSVC11).

@vijayan121: MSVC10 is barely usable as a compiler, with terrible error messages and many many annoying quirks (sub-standard short-cuts, liberal interpretations of the standard, etc.) that require painstaking workarounds. Unless they magically fixed all those things that they didn't manage to (or care to) fix in the past ten years, and they somehow improved their compilation speed and code optimization by at least a factor of two, I don't think you can reasonably say that MSVC11 is ahead of ICC, GCC, Clang, or even IBM XLC. Popularity does not equal quality.

Which Are The Best Compilers For C++ and C . I Was Using Dev-C++ Till This date , I Just Upgraded From Windows 7 to 8 , Any Good Compilers ? Thank You !

Just use the latest version of MinGW. You can use CodeBlocks (with MinGW) as an IDE.

And regardless of the criticisms I expressed towards Visual C++ compiler, it is also a decent and easy choice, try Visual Studio 2012 Express.

commented: Very clear and thorough! +13

Visual Studio 2010 was already ahead of GCC as far as the library was concerned - the Microsoft compiler already had UNICODE support (utf-8, UCS-2 and UCS-4 codecvt facets), basic C++11 threads, atomics amd fences, locales, regular expressions. All these important features are stil missing in GCC (though locales are avalable on linux). What Micrsoft lagged behind was in support for important core C++11 language features. As of November 2012, they have made rapid progress and are on par on those too.

Some six months back, when a like question was raised in Daniweb, I had enthusiastically recommended GCC over MIcrosoft (both were behind clang, 3.1 at that time, but clang with libc++ is not particularly easy for a breginner to build and install).

Today, the landscape has changed; both clang 3.2 with libc++ and VS 2012 (November update) are far ahead of GCC 4.8. This is politically unpalatable to many I am sure - it is disagreeable to an open source afficianado like me, who had consistently preferred GCC over VC++ till now. But however unpleasant it may be, that VC++ is ahead of GCC by some distance (as as a C++ compiler on Windows) happens to be the bitter truth.

@deceptikon: The November update of MSVC11 did add support for, most notably: variadic templates, initializer-lists, and delegating constructors.

Ah, I wasn't aware it was a separate install. That's fantastic. So VC11 is pretty much there in terms of conformance as far as I'm concerned. Now it's just little things. :)

I'm going to have to go with GCC on this. The only thing I saw new that I really wanted from MSVC 2012 was that it had the std::filestream which I really really!!! liked.

GCC has more important/useful features IMO. But MSVC is getting there. Just get both. I don't think there is a "best". Each has its advantages.

std::filestream is not c++, it's CLR/C++ (for .NET) which is a different language.

I'm not as professional as Mike, Vijay, and the co on C++ compiler but I will throw my experience.

If you need something that will work and be reasonably productive, you can go for GCC/GDB. If you need an advanced debugger then MSVC is better for you than GCC/GDB.
I hear a lot about intel as being the best, but never tried.

I would further add that for windows, VC is said to produce small exe but for cross platform GCC is still better.

On IDEs I would vote for CodeLite. It is similar to C::B but have many usefull features and is simple to get started. I had a bad expericence with complexity of MS VS so I always hesitate to recommend to newbie.

HTH,
Stefano

Oops I meant std::filesystem from the TR2 proposal.. MSCV-2012 has their own implementation based on boost as well.

Still, I just downloaded the most up to date visual studio 2012. The compiler supports initialization lists but their include does not. The include is not updated for the new features so there is no point to it because code like below still won't compile in VS2012:

std::vector<int> Foo{1, 2, 3, 4, 5};

On IDEs I would vote for CodeLite.

Seconded. If you find Visual C++ too heavy then CodeLite is a great alternative to the more oft suggested Code::Blocks on Windows. I'd still recommend Visual Studio if you're on Windows as it's more likely to be used in the professional arena, and experience with the tool will improve your marketability slightly.

Everyone Thanks for all The Help I've Downloaded Visual Studio Ultimate Which is Great!

I've Downloaded Visual Studio Ultimate Which is Great!

Did you get the free 90 day trial version, or did you get the illegal free version. I'm certain you didn't pay $10,000 USD to get it legally.

commented: Hehe, you might be onto something here ... +14
commented: You can get it on DreamSpark free if you go to school :) +0

I'm certain you didn't pay $10,000 USD to get it legally.

I've obtained several versions of Visual Studio "Ultimate" (or Professional) (2005, 2008, and 2010) through eAcademy and other programs that deliver free software products to university students. Most universities have such agreements (after all, it makes sense for companies to give out their software for free to students, because they'll be advocating the use of those products later when they start working).

commented: Exactly. +13
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.