C++ in 2016
published at 21.01.2016 16:08 by Jens Weller
Like in the previous years(2015, 2014 & 2013), a short outlook into the fresh year regarding C++...
In 2015 there were a few surprises, C++ has now its own podcast with CppCast, even more C++ blogs, which I share with you almost every week in the Meeting C++ blogroll. A big surprise was the announcement of the core guidelines for C++, followed by the release the Guidline Support Library. The Meeting C++ 2015 conference was a big success, the first videos are already online! But lets look forward into 2016...
Where should I start. Oh, yes, are you aware that we are now in the post Scott Meyers era? As with his last blogpost in 2016, he announced his retirement. Also just a few days ago, another C++ Titan has retired: Alex Stepanov. Both, Scott and Alex have been very important to C++, the STL is Stepanovs contribution to C++, in his great vision of generic programming. And Scott, he has been famous not only for his various books, but mostly been admired for his special way to teach the essence of C++. Yet we should remember, that retirement does not mean that they could not surprise us with something new in the future.
And, have you noticed, that 2016 + 1 is 2017? The year we expect that C++17 is released? This year, its C++17 which we can see taking shape, somethings are already clear, for everything else the C++ committee meets 3 times. Also, I expect this standard to be the first which really ships with "extensions", or Technical Specifications. There are some things, which might not make it in the Standard, simply because the should first mature inside a Technical Specification (aka TS), so using std::experimental and not yet standardized features might become normal in C++.
Conferences and C++ Committee Meetings.
As earlier mentioned, there are 3 C++ Committee meetings:
- 2016-02-29 to 03-05: Jacksonville, FL, USA
- 2016-06-20 to 25: Oulu, Finland
- 2016-11-07-12: Issaquah, WA, USA
There are meetings in 2017 in Issaquah (February) and Toronto (July) planned. Also there might be subgroup meetings, like last years library meeting in cologne. There is an overview page at isocpp.org for more details.
C++ Russia was the first C++ conference in Russia last year, and it is the first C++ conference in 2016, while Meeting C++ should be the last conference again, mid November. An overview, on C++ conferences in 2016:
- C++ Russia, 26-27 February
- ACCU, mid April (Bristol, UK)
- ADC, 25-26 April (Baveria, Germany)
- C++now, 9-14th May (Aspen, USA)*
- NDC Oslo, 6-10th June (Oslo, Norway)
- CppCon, mid September (Seattle, USA)*
- Qt Worldsummit, 18-20th October (San Francisco, USA)
- Meeting C++ 2016, 18-19th November (Berlin, Germany)*
* = meet me there, there are also two talks I want to prepare for this year.
Meeting C++ 2016 has not yet been announced, I plan to do this like last year in March. The opening keynote will be by Bjarne Stroustrup.
A trend started last year is, to release libraries with the minimum requirement of C++11. Both encryption libraries botan and Crypto++ have done so, and many others are on to it. Qt will release with 5.6 a long term maintance release supported for 3 more years, and move to C++11 with 5.7. While boost is known for modern C++ for a long time, some of its inner workings still are based on macro tricks rather then variadic templates, boost::mpl will not be updated to have C++11 support, rather its replacement hana has been accepted into boost, and with brigand there is a replacement for boost::mpl written in C++11, focusing on fast compile times. boost::fusion supports variadic templates since the 1.60 release. Another example is the decision of the C++ Actor Framework to only support the compilers of the last two years at release date.
So the C++ Libraries have started to reflect the standardization and modernization of C++ and its toolchains. So should your projects move, don't get left behind.
With Visual Studio 2015, there is almost full support of C++11 on the 3 major compiler platforms given. So, 2016 should be the year, where C++11 is fully implemented on all major toolsets ;) Clang has enabled an amazing set of tools to do what would have been considered advanced magic a few years ago. I expect this tool section to grow further in 2016. Last year there was a great lightning talk on clang tidy & format at Meeting C++.
A short overview on free tools you should know:
Some of the sanitizers are also available in GCC, and Herb Sutter showed in his CppCon Keynote last year a Visual Studio build in static analyzer. So, expect some surprises in the tool landscape for C++.
Also last year started two new IDEs for C++, CLion and Cevelop, both java based alternatives to Eclipse?
With the newest C++ User Group in Vietnam. There is now a truly international network of user groups meeting around the globe, hotspot is still Europe and North America. Please get in contact with me, if you want to have support from Meeting C++ for starting your own local user group!
There will be some changes in the website, as I slowly finish my work on my CMS. Once its done, I'll plan to port the website to it. There is some work to do on the C++ software which runs Meeting C++, new features are planned. Like in the last years, my focus will be on the community, user groups and planning the 5th Meeting C++ conference.