March 2018

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.

Static Code Analyzer PVS-Studio 6.22 Now Supports ARM Compilers (Keil, IAR)

Now our articles have every chance to become even more interesting because PVS-Studio can now check the code of embedded devices. We have added support for a few ARM compilers, which I talk about in detail below.

Static Code Analyzer PVS-Studio 6.22 Now Supports ARM Compilers (Keil, IAR)

by Andrey Karpov

From the article:

I find the RT-Thread operating system a perfect candidate to be the first embedded system checked with PVS-Studio. I glanced through the analysis report by PVS-Studio and picked 95 warnings that I thought to be the most interesting ones. Too see all those messages for yourself, download the rt-thread-html-log.zip archive with the full HTML report. We introduced this format not so long ago, and some users may not know about it. So, I'd like to use this opportunity to explain it once again.