Product News

C++17 Features And STL Fixes In VS 2017 15.3—Stephan T. Lavavej

It's always getting better!

C++17 Features And STL Fixes In VS 2017 15.3

by Stephan T. Lavavej

From the article:

Visual Studio 2017’s first toolset update, version 15.3, is currently in preview and will be released in its final form very soon. (The toolset consists of the compiler, linker, and libraries. After VS 2017 RTM, the 15.1 and 15.2 updates improved the IDE. The 15.3 update improves both the IDE and the toolset. In general, you should expect the IDE to be updated at a higher frequency than the toolset.)

CLion 2017.2 released with Clang-Tidy and more—JetBrains

Welcome new release of JetBrain's cross-platform C/C++ IDE!

CLion 2017.2 released

by Anastasia Kazakova

From the article:

CLion 2017.2 is all about C++ parser correctness, new code analysis features and performance improvements. Clang-Tidy integration, C++ cast operators and other code analysis enhancements help to ensure the code quality, while the rest bring general improvements to the user experience.

The highlighted new features are:

  • Clang-Tidy checks and complementary quick-fixes come to CLion. This includes checks from C++ Core Guidelines, modernize checks and many others.
  • C++ support enhancements:
    • C++17 is now available in the New Project wizard
    • Precompiled headers are now supported when using Microsoft Visual C++ compiler (in addition to GCC and Clang)
    • Code intentions and quick-fixes use C++ cast operators for C++ code instead of C-style cast
    • Dozens of improvements in C++ parser and built-in code analysis engine
  • A new Force Step Into action for getting into disassembly code only when you really want to.
  • Cancelable CMake reload and Go to navigation actions to ensure better IDE performance.
  • Bundled CMake 3.8.

PVS-Studio 6.16 released

PVS-Studio is a static code analyzer that detects errors and potential vulnerabilities in the source code of programs written in C/C++/C#. Version 6.16 has obtained 11 new general analysis diagnostics.

PVS-Studio 6.16 released

by Andrey Karpov

About the release:

In a sense, this is a milestone for us. The thing is that we cannot add more numbers of general analysis warnings, otherwise they will concur with the numbers of micro-optimization diagnostics. It seemed to us that the list of 300 diagnostics was endless, but now it is over and we got to the point of 800, where we have micro-optimization diagnostics. In the next release we plan to resume numbering the general-analysis warnings with V1000. Download and enjoy the new version of PVS-Studio now by clicking here.

P.S. How to use PVS-Studio for Free.

There Is A New Future—Felix Petriconi

Version 1.0 of a new C++ future and channel library has been released.

There Is A New Future

by Sean Parent, Foster Brereton and Felix Petriconi

About the library:

This library provides high level abstractions for implementing algorithms that eases the use of multiple CPU cores while minimizing the contention.

The future implementaton differs in several aspects compared to the C++11/14/17 standard futures: It provides continuations and joins, which were just added in a C++17 TS. But more important this futures propagate values through the graph and not futures. This allows an easy way of creating splits. That means a single future can have multiple continuations into different directions. An other important difference is that the futures support cancellation. So if one is not anymore interested in the result of a future, then one can destroy the future without the need to wait until the future is fullfilled, as it is the case with std::future (and boost::future). An already started future will run until its end, but will not trigger any continuation. So in all these cases, all chained continuations will never be triggered. Additionally the future interface is designed in a way, that one can use build in or custom build executors.

Since one can create with futures only graphs for single use, this library provides as well channels. With these channels one can build graphs, that can be used for multiple invocations.