Hacker News new | past | comments | ask | show | jobs | submit login

TLDR: I'm pissed that a standard with significant new features that is less than a year old doesn't have enough mature implementations yet



Well, not quite, because those features were "accepted" and public and well known and available in basically final form to implement for many years.

So it's not like the standard came out and everyone was like "whoa, new stuff we have to do". It came out piece by piece, and at some point was declared done. Like HTML5, only more organized and it got finished :)

This is why, for example, GCC and clang have had mature implementations in them for years.

In fact, GCC/Clang/et al having implementations was pretty much a pre-req to finishing the standard because they were used to discover bugs and issues in the proposed standard.

(edit: I'm simplifying a bit, since GCC, et al have had to make bug fixes for draft vs final incompatibilities and bugs that were discovered, but they are still relatively mature)


Yeah, and a lot of features came from boost.


Another way of seeing it is that all the other major compilers (gcc, clang, icc) have good support but Microsoft's compiler, the one that best integrates with the Windows ecosystem, does not.


Apple is not that great either. Newest xcode (last time I checked, few months ago) shipped with clang that didn't even understand lambdas. And even that partial C++11 support came a the cost of dropping support for OSX 10.6 (didn't have 10.6 SDK compiled with clang). So I had to undo basic C++11 stuff (some lambdas and autos mostly) I've done in VS2010...


I have been using auto and lambda's in my C++ code using clang since 10.6. Since 10.8 it has only improved. If you checked a few months ago you didn't check correctly.


What Xcode version/compiller settings/C++ lib settings and OSX SDK version did you use on 10.6? I found there is no good combination. Also lambdas are supported since xcode 4.4 which was released in july...


    $ cat test.cpp
    int main() {
        return ([]() { return 5; })();
    }
    $ clang++ -std=c++11 -o test test.cpp
    $ 
Xcode 4.4.1.


Looks like lambdas are supported since 4.4, that's what I get on 4.3.2:

main.cpp:7:30: current parser token ')' main.cpp:5:1: parsing function body 'main' main.cpp:5:1: in compound statement ('{}') clang: error: unable to execute command: Segmentation fault: 11

Too bad we are now locked for next year or so. (and of course 4.4 doesn't support OSX 10.6, so no C++11 for us anyway...)


Eek. You can always install a newer compiler from MacPorts or whatever.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: