C++0x11 + OSX + Eclipse: Part 0 – The Why

I use Eclipse CDT as my C++ editor of choice on my Mac at work and at Home.
It’s really a very good editor for C++. Xcode, is a decent editor. When doing iphone / mac OSX projects with Objective-C its an amazing editor. However it is very bad at C++, in my opinion Xcode 4 is much worse than Xcode 3 at C++ code editing.

Is it a conspiracy to nudge developers towards developing using (basically) Apple’s own Objective-C programming language? Maybe I’m not sure, however I do love Objective-C, it’s my second and sometimes first favorite programing language, behind only C++.

To be honest it’s probably not, since they support the Clang+LLVM project which supports C++11, in fact it supports more features than GCC4.7 and is a faster compiler.

C++ has matured so much in the last few years, and a large part of that is due to the Boost libraries. In fact Boost, is sort of used as a testing ground for C++ – and many parts of C++0x11 started off as Boost Libraries ( for-each, any containers, lambdas, smart pointers, thread ).

As an OSX affectionato, I have to admit that I was upset that my latest version of OSX ( Lion at the time of writing ) was using GCC 4.2… GCC 4.2.1 is from July 2007!. The compiler and accompanying library is over 5 years old! In computer years, from what I sophisticatedly computed, thats 1 zillion years ago. That doesn’t seem right… Apple is defineintly making amzing strides with LLVM+Clang compiler, it’s actually better and faster than the latest GCC (4.7 at time of writing), however Xcode is such aTERRIBLE C++ editor, often not providing auto-complete, and not being able to find references until upto a minute after click. One minute? That’s crazy.

Hearing all this talk about how great C++0x11 was, I wanted to use it. To be honest, a lot of the stuff can be faked using the amazing Boost libraries – some of which are now standard. However I felt ripped off, these are officially part of C++ I should be able to use them now right!? Well not on OSX you can’t – well at least not without a little bit of work.

In tomorrow’s post I’ll guide you through the steps I went through to get C++11 to work on my OSX 10.6 / 10.7 mac.

As a preview, all of these features I found from the C++11 wikipedia page compiled and work correctly.