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

C++11 is a theoretical language developed by a committee which doesn't really exist in practice.

That gcc, like most other C++ compilers, does not support it, means little.




I've been spending the last couple weeks ramping up a game project with Clang and libc++ and porting for testing to MSVC.

The notion that C++11 doesn't exist is novel given that I'm using it regularly on both platforms that I consider relevant.


Parts of it are implemented. But parts of it aren't, and there have been similar cases where something was standardized but never got implemented (e.g. CSS2.1). I'm coming more and more to the position that standardization should happen after implementation rather than before.


Such principles don't matter for C++11 -- the new standard is good and will be implemented.


Will be implemented and the important bits are already implemented everywhere except GCC, claims of GCC compliance aside. Like, take the standard library for a second--only on GCC must I care about std::unordered_map versus std::tr1::unordered_map. That's a minor pain, but I don't care--I don't feel like dealing with it for GCC platforms (especially given that even after libstdc++ gets right there will be old versions floating around), so I'm only targeting Windows and OS X where clang and libc++ is available.


Do any languages matter? Is it irrelevant that language X does not have a compiler when language Y does?

The answer is that languages are hugely important. C++11 is an entirely huge language and having a standards and feature compliant compiler is critical to being productive in the language.


C++11 itself not theoretical, but the added "improvements" to the language are mostly theoretical. Since adding the template concepts a few years ago, the steering committee has dropped all sense for pragmatic design decisions and replaced it with fashionable-at-the-moment CS-concepts that will not improve your life as a developer in the real world. There is a good reason why most companies limit/prohibit the usage of certain newer C++ features. Using them only adds complexity while not leading to better software (>speed,<size, >maintainability).


I don't think denial is the best way to cope with the news.

Last time I checked C++11 has been an ISO standard since last August, with MS and Clang ramping up their support for it.


As far as I know, GCC and Clang have the most complete C++11 implementations, and I use many C++11 features daily in GCC 4.7.2. (Planning to give Clang another whirl, but haven't gotten around to it yet.)


But neither fully supports it yet, just as GCC doesn't. Even when they claim to support every feature in the standard, that's just the beginning -- next comes fixing all the bugs and corner cases that naturally arise from a spec as complex as C++11.


And? Essentially the same thing happened with C++98, and in the long run it didn't hurt adoption too much. To me, it seems like the compiler are doing a better job this time around.


The point is that it's silly to criticize GCC for having incomplete C++11 support one year after the standard has finalized, and even sillier to point to other compilers' less-complete support as evidence that GCC is falling behind.




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

Search: