C++11/14/17 Features in VS 2015 RTM
blogs.msdn.com
blogs.msdn.com
Thanks for being great at outreach.
https://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavav...
I just happen to enjoy writing and keeping track of these feature tables, which is why I publish them. My real work goes into STL features and fixes, which is just one part of a very large product that many other compiler and library devs work on.
Other MS devs have contributed STL bugfixes in this release, and a couple of features (e.g. uncaught_exceptions() and sized deallocation), so it's not just the PJP and STL show.
https://channel9.msdn.com/Events/GoingNative/2013/Keynote-He...
There were also a proposal to include mature libraries into the standard (i.e boost, cairo, etc. He also said that was impossible with number of people on the comittee and they included more members in the form of study groups focusing in different features/libraries.
I believe the major points would be that they recognized the need to make the ISO C++ revision cycle faster
C++, where it goes beyond those simple basics, always gives me mixed feelings. On the one hand, C++ has its good sides (Qt rocks, or at least it did the last time I used it (around version 4.8)), but every time I approach C++, I seem to succumb to the temptation of making things overly complex. I sometimes think the biggest problem with C++ is not learning the language but developing the discipline to use it properly (where "properly" might mean different things to different people).
The biggest problem for C++ that I see is that it has historically not had any batteries included. That strokes the ego of an average programmer and gets the creative juices flowing. Rather than doing discliplined research and picking an off the shelf solution, you end up with a poor copy or incongruent invention. Or even worse, some crap bolted onto MFC.
Roll on a few years later and the patterns haven't scaled well, the original programmers have left after becoming frustrated with the corner they coded themselves into and the only justifiable cost is to put 12 months of cash on the table and start again because your business' greatest cash generator is a hairball and you can no longer evolve it cost effectively.
The last three chunks of work I have done are to get companies out of these situations. Not pretty and a loveless task, but for me I'm right at home. The crimes I've seen are worst in the C++ and PHP areas. I suspect they suffer from the same problems and most of the problems are caused by inexperience and the ability to merely hit a few keys to generate a large hand grenade.
PHP is on of the few languages I've met I truly dislike, but I have had only very limited contact with it, and that was about 11 years ago, so I cannot comment on the current state of affairs. (I do remember it did have good documentation, though.)
I have had to take on other people's code a few times, but I was very lucky in so far as the applications I inherited were written and organized in a very sanity-preserving way.
>I sometimes think the biggest problem with C++ is not learning the language but developing the discipline to use it properly
I think it sounds like you need to crank out some C++ code for a few years (like any other language) before you start internalizing what works and what doesn't.
I do agree with you in that that it would probably take me a couple of years to get comfortable with C++. My point was that I feel it would take me substantially longer than it did with other languages.
Expression SFINAE offers the ability to detect more properties of things, like is_callable or has_member_function_meow. This can then be used in tag dispatch, or other mechanisms (SFINAE can be used directly to dispatch, but it's a more lengthy explanation).
Maybe MS is slow to implement C++ features because they don't have modules? Whats the compile time on MSVC?
http://clang.llvm.org/docs/Modules.html#includes-as-imports
I have been in projects where a full build would be around an hour but mostly because the dependencies. That said, I seldom performed a full rebuild so it wasn't a huge deal for me. The major hassle is to wait for the build machine when you are sending a version to QA.
To quote the article, this is what is missing: "Our C99 Standard Library implementation is complete, except for tgmath.h (which is irrelevant in C++) and the CX_LIMITED_RANGE/FP_CONTRACT pragma macros."
That, and some preprocessor incompatibilities.
2013 has a lot, and it looks like 2015 almost closes the gap. I'm content with the 2013 additions, but I simply do not understand why c99 wasn't fully supported 10 years ago, much less in the latest VS edition. C++ is better in many ways but when you need to compile C specific code, it is incredibly frustrating.
It's frustrating, but not likely to change.
MSFT doesn't need it and 99% of the compiler's users do not need it. I'm not happy about it but I can understand why it's not a priority for them.