C++17 Features, in easy to understand before/after tables -- Tony Van Eerd

Results of a recent survey suggest that many devs have a hard time keeping up with changes between each rev of C++.

C++17 before and after table

by Tony Van Eerd

About the article:

Here's a collection of the major changes between C++14 and C++17, with example code for each - typically showing how it may have been written before C++17, and how it can now be written with the new C++17 feature(s).

 

 

C++ Rename Shootout: Visual Studio 2017 vs. ReSharper for C++ -- Richard Thomson

A comparison of two automatic rename tools for C++ in Visual Studio.

C++ Rename Shootout: Visual Studio 2017 vs. ReSharper for C++

by Richard Thomson

About the post:

Getting help from your development environment for renaming identifiers can be a huge productivity boost. It lets you quickly and easily improve the names of things in your code. In this post, I’ll review two automatic renaming tools for C++ in Visual Studio: Visual Studio 2017 Community Edition 15.5.7 and ReSharper for C++ 2017.3.2.

CopperSpice: Regular Expressions

New video on the CopperSpice YouTube Channel:

Regular Expressions

by Barbara Geller and Ansel Sermersheim

About the video:

This video covers Regular Expressions, what they are and when you might want to use them. We also discuss when to avoid using a regex. We cover existing regex libraries that can be used in C++, briefly examine their pros and cons, and present the CopperSpice regular expression implementation.

Please take a look and remember to subscribe!

Clang 6.0.0 released

LLVM 6.0.0 and Clang 6.0.0 are now available.

Clang 6.0.0 Release Notes

From the announcement:

Clang’s default C++ dialect is now gnu++14 instead of gnu++98. This means Clang will by default accept code using features from C++14 and conforming GNU extensions. Projects incompatible with C++14 can add -std=gnu++98 to their build settings to restore the previous behaviour.

Added support for some features from the C++ standard after C++17 (provisionally known as C++2a but expected to be C++20). This support can be enabled with the -std=c++2a flag. This enables:

  • Support for __VA_OPT__, to allow variadic macros to easily provide different expansions when they are invoked without variadic arguments.
  • Recognition of the <=> token (the C++2a three-way comparison operator).
  • Support for default member initializers for bit-fields.
  • Lambda capture of *this.
  • Pointer-to-member calls using const &-qualified pointers on temporary objects.

A warning has been added for a <= token followed immediately by a > character. Code containing such constructs will change meaning in C++2a due to the addition of the <=> operator.

Clang implements the “destroying operator delete” feature described in C++ committee paper P0722R1 <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0722r1.html>, which is targeting inclusion in C++2a but has not yet been voted into the C++ working draft. Support for this feature is enabled by the presence of the standard library type std::destroying_delete_t.

 

Results summary: C++ Foundation Developer Survey "Lite", 2018-02

From last Monday through this Monday, we ran our first global C++ developer survey.

Thank you to the over 3,200 of you who responded. As promised, here is a public summary of the results:

Results summary: C++ Developer Survey "Lite": 2018-02

This summary has now been forwarded to the C++ standards committee, along with the full text of your write-in answers (over 300 pages!). Your feedback will be very helpful, and has already started to be referred to by standards participants as we prepare for next week's ISO meeting in Jacksonville, FL, USA.

Thank you again for your participation. It is very helpful, and based on the success of this survey we plan to run it again in the future from time to time. When we do, it will be announced here on isocpp.org.

 

Note: Due to a SurveyMonkey bug, the word clouds showing popular keywords for the five open-ended questions cover about half the responses, which fortunately is still a large sample. They're working on a fix to include all the responses in the word clouds.

Selective argument application -- Krzysztof Ostrowski

Presentation of a technique that enables transparent interception of the selected arguments passed to any function by means of a user-provided predicate metafunction.

Selective argument application

by Krzysztof Ostrowski

From the article:

Presentation of a design of an interceptor abstraction built over C++17 utilities that records values of the selected arguments passed to any action transparently, then applies that action to the captured arguments, and eventually passes the result value to the next action.

RIP index_sequence, 2014–2017 -- Matt Aubury

Matt Aubury philosophizes about digging a grave for certain std::index_sequence idioms. 

RIP index_sequence, 2014–2017

by Matt Aubury

From the article:

std::tuple was one of the great additions to C++11. Whilst sometimes abused by lazy programmers (who should really be using a struct or class), it’s true value is as a container of arbitrary values in variadic templates.

Sadly, static typing makes working with tuples much harder in C++ than in most languages [...]

What are the C and C++ Standard Libraries?

A brief tour into the realm of writing C and C++ applications, the role of the Standard Library and how it is implemented in various operating systems.

What are the C and C++ Standard Libraries?

By Triangles @ Internal Pointers

From the article:

I have been playing around with C++ for a while and one thing that always got me confused in the beginning was its anatomy: where do the core functions and classes I'm using come from? Who invented them? Are they packaged somewhere in my system? Is there a kind of official C++ manual around?

CppCast Episode 140: Conference News and CppChat

Episode 140 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Jon Kalb to discuss upcoming C++ conferences, CppChat and east const.

CppCast Episode 140: Conference News and CppChat

by Rob Irving and Jason Turner

About the interviewee:

Jon Kalb does onsite training in C++ and chairs C++Now, CppCon, and the Boost Steering Committee.

Next month he will be speaking at the ACCU conference in Bristol, and keynoting the C++ Russia conference in Saint Petersburg.