- There was a Visual Studio of 2015 with excellent support of opportunities With ++ 14/17 and even several experimental things
- There was long-awaited GCC 5.0
- With ++ gained serious popularity. Somewhere since July — the third place in Tiobe Ranking
- At the CppCon 2015 conference several important announcements were made
And now about this and another is a little more detailed
The status of support With ++ 11
The compilers Clang, GCC and Intel Compiler have a complete support of C ++ 11.
In the Visual Studio two things are not enough: Expression SFINAE — N2634 and C99 preprocessor — N1653
The status of support With ++ 14
Clang and GCC completely support C ++ 14. And generally the situation is so:
Changes from last year are noted by an asterisk (*)
In the Visual Studio of 2015 the compiler C ++ became much closer to complete compliance to the standard, Sized deallocation, attribute [[deprecated]] and support of a single quote as a divider of discharges in numbers were implemented.
Good progress showed also the compiler Intel — they added support generalized a lambda functions, initialization of members of a class (including modular), plus the same attribute [[deprecated]] and support of a single quote as a divider of discharges in numbers.
The status of support With ++ 17
Obviously, the majority of us waits for this grandiose event which has to take place already just about: standardization With ++ 17! Yes, compilers need to work even over support With ++ 11/14, but the majority of features are already implemented or are at the last stages of implementation. Design teams of all main compilers already actively experiment with some new features of future standard C ++ 17.
But what includes With ++ 17?
For complete understanding of a subject it will be best of all to read "Thoughts apropos With ++ 17" from Straustrup. It selected three main priorities:
- To improve support of scaling for big projects
- To add support of high-level parallelism
- It is simpler to make a language kernel, to improve STL
Besides, With ++ 17 is planned to be major release of language, i.e. except small updates we will receive also something larger:
- Modules — n4465, n4466
- Contracts — n4415
- ASIO for work with a network — n4478
- SIMD vectorization — n4454
- The improved futures — n3857, n3865
- Korutina — N4402, n4398
- Transactional memory — n4302
- Parallel algorithms — n4409
- Concepts — n3701, n4361
- Concepts in standard library — n4263
- Ranges — n4128, n4382
- The unified syntax of a challenge — n4474
- The operator a point — n4477
- array_view and string_view — n4480
- Arrays in a stack — n4294
- optional — n4480 — optional
- Convolution of expressions — N4295
- __ has_include in the conditions of a preprocessor — P0061R1
- File system — n4099
- Set of smaller changes
Here the excellent overview of all potentialities With ++ 17.
Those features which will not manage to enter in With ++ 17 will be included into the following standard C ++ 20 which is planned as minor. With ++ 20 will polish With ++ 17 as With ++ 14 polished With ++ 11.
At the CppCon conference in the key presentation Byyorn Straustrup made the important announcement: Core Guidelines!
The complete version of guidelines is on GitHub, here excerpt from the introduction:
"With ++ Core Guidelines are result of collaboration of group of authors under the leadership of Byyorn Straustrup as, actually, and language C ++. Many cheloveko-years of work of people from a set of the organizations are enclosed in development of these recommendations. The design of these guidelines assumes their general application and a wide circulation that however, does not exclude your right to copy and change them under needs of your organization.
The purpose of development of these instructions is to help people to use modern With ++ effectively. Under "modern With ++" we mean With ++ 11 and S ++ 14 (and soon and With ++ 17). We will help to provide to you as your code which you will begin to write today will look through 5 (or 10) years."
As language becomes richer, sovremenney (but at the same time more simply) it will be very useful to have such reference book. Some well-known rules are replaced with new approaches — for example, RAII. Transition to them is not so simple, especially, if you support old code base and want to add something modern to the code. Core Guidelines are developed collectively, so, have to become rather practical tool.
Byyorn Straustrup's speech:
Addition to it from Herb Sutter:
Standardization With ++
Last year there took place two meetings of committee on standardization With ++: A game in October and Leneksa in April.
Couple of words about a spring meeting:
And about autumn:
The next meetings of committee on standardization in the 2016th year are scheduled: in Florida in February and in Finland in June (at this meeting vote for the standard C ++ 17 is planned).
News of the world of compilers
- Support With ++ 11/14/17 in RTM VS 2015
- MSDN about With ++ 11/14/17
- The link to the latest version of the supported standard
- Support of constexpr in the Visual Studio (http://blogs.msdn.com/b/vcblog/archive/2015/06/02/constexpr-complete-for-vs-2015-rtm-c-11-compiler-c-17-stl.aspx)
- Rejuvenation of the compiler C ++ from Microsoft
- Experimental support:
- Light - concepts are added to the main branch of GCC
- There was GCC 5.0 (the list of changes)
- The current support of standards C ++ 1y/C ++ 14 in GCC
- Current status of support of new standards
- Now Clang can be used in the Visual Studio for compilation under several platforms. And Clang can be used under Windows.
- There was version 16 (the presentation, video)
- Current status of support With ++ 11
- Current status of support With ++ 14
Last year there took place two important conferences: CppCon and MettingCpp
and the second:
As we see, the committee on standardization With ++ makes serious efforts on work on the standard C ++ 17. By the end of the year we can expect acceptance of a draft copy of this standard. Developers feel the new atmosphere of changes and it is reflected in ratings of popularity of language (in Tiobe Rank C ++ gained 8%). Term "the Renaissance With ++" any more not the myth …
That it is even better — we have a set of experimental features in compilers. We can already experiment with modules, concepts, korutina … It, of course, is not safe yet and cannot be applied in a production-code, but in respect of training and testing it is very interesting. Besides, it gives the chance to receive some fidbek which can influence the final specification of all these things.
The design team of VisualStudio becomes much more open, it is noticeable since VS2015. You not only can create multiplatform applications, but also very quickly receive updates with new interesting features.
All compilers support With ++ 11/14 at rather good level so it is more no, justifications not to pass to use of these standards. By means of Core Guidelines this task becomes even simpler.
Just couple of hours ago Scott Myers published article farewell with the world With ++. Discussion on reddit
And what you think?
- What to you it was remembered from an event near With ++ in the 2015th year?
- What did I pass?
Well and oprosnichek.
The users only registered can participate in poll. Enter, please.
This article is a translation of the original post at habrahabr.ru/post/274549/
If you have any questions regarding the material covered in the article above, please, contact the original author of the post.
If you have any complaints about this article or you want this article to be deleted, please, drop an email here: firstname.lastname@example.org.
We believe that the knowledge, which is available at the most popular Russian IT blog habrahabr.ru, should be accessed by everyone, even though it is poorly translated.
Shared knowledge makes the world better.