Jump to content

  • Log In with Google      Sign In   
  • Create Account


List of C++11 compliant compilers?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
42 replies to this topic

#1 MarkS   Prime Members   -  Reputation: 875

Like
1Likes
Like

Posted 01 August 2013 - 10:33 AM

I'm getting fed up with Visual Studio Express 2012. There are so many new language features that I can only look at in code samples.

 

Are there any *free* Windows-based C++11 compilers? What are some recommendations?



Sponsor:

#2 SimonForsman   Crossbones+   -  Reputation: 5770

Like
3Likes
Like

Posted 01 August 2013 - 10:42 AM

clang or g++(mingw) would be the most popular free ones that support C++11


I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#3 DemonRad   Members   -  Reputation: 290

Like
2Likes
Like

Posted 01 August 2013 - 11:00 AM

http://gameprog.it/articles/90/c-11-getting-started-on-windows#.UfqTvKzN4vs for getting started on windows with c++11

 

else you can download last Qt package and just add the -std=c++11 flag to project file options (you get the mingw 4.8.x package along with Qt IDE).


Edited by DemonRad, 03 August 2013 - 05:56 AM.

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!


#4 swiftcoder   Senior Moderators   -  Reputation: 9585

Like
1Likes
Like

Posted 01 August 2013 - 07:09 PM


else you can download last Qt package and just add the -std=c++ flag to project file options (you get the mingw 4.8.x package along with Qt IDE).

QFE.

 

QtCreator is one of the nicest of the non-Microsoft IDEs, and you get a shiny new C++0x-capable GCC, into the bargain.


Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#5 Juliean   GDNet+   -  Reputation: 2229

Like
1Likes
Like

Posted 01 August 2013 - 07:16 PM

There is a compiler pack which allows you to use most c++11 features on MSVC 2012, don't know if it is compatible to express version though...



#6 Ravyne   Crossbones+   -  Reputation: 6765

Like
5Likes
Like

Posted 01 August 2013 - 07:38 PM

There is a compiler pack which allows you to use most c++11 features on MSVC 2012, don't know if it is compatible to express version though...

 

That's just a CTP though -- you could play with it, but you can't rely on it for production, and the license forbids distributing programs compiled with it.

 

 

OP, have you tried the VS2013 preview? It supports more of C++11 -- indeed all, or nearly all, of the stuff you'd actually care to use. Again, its just a preview, but the real-deal is just around the corner.

 

That said, even VS2013 RTM won't be 100% C++11 compliant. Frankly, its a really old compiler and it needs some improvements to follow the spec to-the-letter, as well as to make implementing some of the remaining features easier. Herb Sutter's keynote at /Build outlined the road-map for supporting features from C++11 and C++14 (not a standard yet, but some small and valuable additions are firm enough to adopt now), and how they aren't necessarily going to deliver all of C++11 before some of C++14 -- basically, they're treating all the features as one bucket of work, and delivering those features with the most value first. Objectively, that's a better approach to managing their developer resources, but it does mean the sacrifice being able to say they're 100% C++11-complaint a while longer.



#7 Chris_F   Members   -  Reputation: 1938

Like
0Likes
Like

Posted 01 August 2013 - 09:06 PM

For GCC on Windows I would suggest:

 

http://tdm-gcc.tdragon.net/

 

Which is very easy to install. You have your choice of 32-bit only or 32/64-bit. GGC version 4.7.1.

 

http://nuwen.net/mingw.html

 

Also pretty easy to install if I remember correctly. Not sure if it supports 64-bit, but it is GGC version 4.8.1 and comes with Boost 1.54 by default.


Edited by Chris_F, 01 August 2013 - 09:07 PM.


#8 LorenzoGatti   Crossbones+   -  Reputation: 2511

Like
2Likes
Like

Posted 02 August 2013 - 01:54 AM

 

For GCC on Windows I would suggest:
 
http://tdm-gcc.tdragon.net/
 
Which is very easy to install. You have your choice of 32-bit only or 32/64-bit. GGC version 4.7.1.
 
http://nuwen.net/mingw.html
 
Also pretty easy to install if I remember correctly. Not sure if it supports 64-bit, but it is GGC version 4.8.1 and comes with Boost 1.54 by default.

 
Sadly, stopping at 4.7.1 makes TDM-GCC almost as unmaintained as official MINGW releases. The other suggestion, Stephen T. Lavavej's distribution, remains my first choice.
Produci, consuma, crepa

#9 l0calh05t   Members   -  Reputation: 643

Like
3Likes
Like

Posted 02 August 2013 - 01:55 AM


OP, have you tried the VS2013 preview? It supports more of C++11 -- indeed all, or nearly all, of the stuff you'd actually care to use. Again, its just a preview, but the real-deal is just around the corner.

 

Far from it. Implicit move generation is pretty important, and ref qualifiers are very helpful for correctness. And no proper constexpr. And no user defined literals. All delayed to post VC2013 CTPs (so not for production code). The saddest part? On the far right (lowest priority/farthest in the future) there are still two C++98 bullet points. Admittedly not that important but that standard is now 15 years old, and Visual Studio still isn't there yet, and I suspect that C++11/14 will take just as long.

 

Visual Studio is lagging behind extremely.

 

About Mingw, I usually get my MinGW from http://sourceforge.net/projects/mingwbuilds/ those are very up to date.


Edited by l0calh05t, 02 August 2013 - 04:55 AM.


#10 MarkS   Prime Members   -  Reputation: 875

Like
0Likes
Like

Posted 02 August 2013 - 08:35 AM

Thanks everyone. I think I've settled on Code::Blocks and MinGW. I like the IDE.
 
I did think about VS2013, but it was fleeting. Microsoft places so many unnecessary and artificial restrictions on the Express versions that it becomes, in many cases, unusable. Now they are limiting DX development and debugging to the paid versions? What's next? I was actually thinking about paying for the pro version until I remember the poor C++11 support. If there are better options, sticking with Microsoft's version gain me nothing but headaches. l0calh05t, they still haven't fully implemented C++98? Really? Yeah, I'll pass.
 

 

else you can download last Qt package and just add the -std=c++ flag to project file options (you get the mingw 4.8.x package along with Qt IDE).

QFE.
 
QtCreator is one of the nicest of the non-Microsoft IDEs, and you get a shiny new C++0x-capable GCC, into the bargain.

 


I've had Qt 5.1 with MinGW 4.8 for some time now and didn't realize what I had. I really HATE Qt's IDE. I really cannot quantify it, but it just irks me. I wanted to get involved in the Tiled project, but I cannot get past Qt's GUI. I really don't know why. Something about it just irritates me. unsure.png


Edited by MarkS, 02 August 2013 - 08:40 AM.


#11 DemonRad   Members   -  Reputation: 290

Like
0Likes
Like

Posted 02 August 2013 - 11:34 AM

I agree: I tried Qt recently.. great IDE, but the Qt GUI API is a total mess-up and I hate it. You can still use it for create non-gui applications biggrin.png

 


 

About Mingw, I usually get my MinGW from http://sourceforge.net/projects/mingwbuilds/ those are very up to date.

 

 

Yes mingwbuilds is very good. Infact the article I linked in the first post explain how to setup mingwbuilds with an IDE. I found mingwbuilds interesting for few extra reasons (despite the fact that those are always up to date, stand alone packages): finally someone provided DLLs for runtimes (so every time you create an executable including "iostream" you don't get extra 600 KB but you just need the DLL, now a simple hello world is few KB instead of ~0.5MB) and a working std::thread (still using Posix wrapper instead of native windows thread but that's ok)


Edited by DemonRad, 02 August 2013 - 11:36 AM.

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!


#12 MarkS   Prime Members   -  Reputation: 875

Like
0Likes
Like

Posted 02 August 2013 - 12:11 PM

I agree: I tried Qt recently.. great IDE, but the Qt GUI API is a total mess-up and I hate it. You can still use it for create non-gui applications biggrin.png


That's not what I meant. I meant the IDE's GUI. I haven't tried messing with the GUI API or much of anything related to Qt due to the IDE.

#13 Demos Sema   Members   -  Reputation: 112

Like
0Likes
Like

Posted 02 August 2013 - 12:13 PM

I think it is important to note that MSVC's STL (essentially dinkumware) and clang's libc++ are way more complete than GCC's libstdc++



#14 MarkS   Prime Members   -  Reputation: 875

Like
0Likes
Like

Posted 02 August 2013 - 12:28 PM

I think it is important to note that MSVC's STL (essentially dinkumware) and clang's libc++ are way more complete than GCC's libstdc++


What are the differences?

#15 Demos Sema   Members   -  Reputation: 112

Like
1Likes
Like

Posted 02 August 2013 - 12:36 PM

std::regex is missing from my version of libstdc++, as is std::wstring_convert. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x has the full table.



#16 TheChubu   Crossbones+   -  Reputation: 3699

Like
0Likes
Like

Posted 02 August 2013 - 01:59 PM

Sadly, stopping at 4.7.1 makes TDM-GCC almost as unmaintained as official MINGW releases. The other suggestion, Stephen T. Lavavej's distribution, remains my first choice.

There is this project MinGW-w64 which seems fairly up to date. If you look at the builds, they have support for GCC 4.8.1, for both x86 and x86_64 platforms.


Edited by TheChubu, 02 August 2013 - 05:11 PM.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#17 MarkS   Prime Members   -  Reputation: 875

Like
0Likes
Like

Posted 02 August 2013 - 05:00 PM

std::regex is missing from my version of libstdc++, as is std::wstring_convert. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x has the full table.


That is minor in comparison to what is missing from Visual Studio. I have a feeling that gcc will be far better at implementing the standards than Microsoft.

#18 Washu   Senior Moderators   -  Reputation: 4465

Like
3Likes
Like

Posted 03 August 2013 - 02:56 AM

what exactly do you feel is missing, that you would like to use? While visual studio is missing quite a bit of C++11, it has a decent amount of it implemented, especially the more important bits. The other chunks and pieces that are missing aren't particularly important for most cases, doesn't mean you won't miss them though on the rare occasion.

 

There is a great deal to C++11, and no current compilers are "standards compliant," although clang makes a decent go at it.

 


That is minor in comparison to what is missing from Visual Studio. I have a feeling that gcc will be far better at implementing the standards than Microsoft.

I would consider the missing lack of a regular expressions library, part of the new standard library, to be a rather significant chunk of the C++ language to be missing. Especially since regular expressions tend to creep and find their way into so many different places you wouldn't expect them to.


In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


#19 SimonForsman   Crossbones+   -  Reputation: 5770

Like
1Likes
Like

Posted 03 August 2013 - 12:14 PM

what exactly do you feel is missing, that you would like to use? While visual studio is missing quite a bit of C++11, it has a decent amount of it implemented, especially the more important bits. The other chunks and pieces that are missing aren't particularly important for most cases, doesn't mean you won't miss them though on the rare occasion.

 

There is a great deal to C++11, and no current compilers are "standards compliant," although clang makes a decent go at it.

 

 


That is minor in comparison to what is missing from Visual Studio. I have a feeling that gcc will be far better at implementing the standards than Microsoft.
 

I would consider the missing lack of a regular expressions library, part of the new standard library, to be a rather significant chunk of the C++ language to be missing. Especially since regular expressions tend to creep and find their way into so many different places you wouldn't expect them to.

 

Yeah, clang really is pulling quite far ahead of gcc now, heck, even if you ignore the C++11/C99/C11 support clangs warnings and error messages alone are a good enough reason to use it over gcc. (allthough gcc is catching up in that area aswell now)


Edited by SimonForsman, 03 August 2013 - 12:18 PM.

I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#20 Matt-D   Crossbones+   -  Reputation: 1410

Like
1Likes
Like

Posted 03 August 2013 - 03:46 PM

Summary of C++11 Feature Availability: http://www.aristeia.com/C++11/C++11FeatureAvailability.htm

 

// Note that it links to sources which are more up-to-date, e.g., http://wiki.apache.org/stdcxx/C++0xCompilerSupport (and GCC-specific & Clang-specific websites)


Edited by Matt-D, 03 August 2013 - 03:48 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS