Product News

PVS-Studio 6.26 Released

This new release included many interesting improvements related to analysis of C and C++ code, about which we'd like to tell our users.

PVS-Studio 6.26 Released

by Andrey Karpov

From the article:

A developer believes that this is a bug in the compiler. Nevertheless, it is the author of the code who is wrong. The function does not work correctly due to the fact that undefined behavior occurs in it. The compiler follows that in the r variable a certain sum is calculated. Overflow of the r variable must not happen. Otherwise, it is undefined behavior, which doesn't have to be considered or taken into account by a compiler. So, the compiler thinks that since the value of r variable after ending the loop cannot be negative, then r & 0x7fffffff operation is not needed to reset the sigh bit and the compiler just returns the value of r variable from the function.

 

JSON for Modern C++ version 3.3.0--Niels Lohmann

Are you using it?

JSON for Modern C++ version 3.3.0

by Niels Lohmann

From the article:

This release adds support for GCC 4.8. Furthermore, it adds a function get_to to write a JSON value to a passed reference. Another topic of this release was the CMake support which has been overworked and documented.

Besides, a lot of bugs have been fixed and slight improvements have been made. All changes are backward-compatible...

CLion started 2018.3 EAP by adding initial remote dev support

CLion started 2018.3 Early Access Program with one of the most awaited feature request – remote development support

Stay local, let your IDE do remote work for you!

by Anastasia Kazakova

From the article:

We’ve started with a particular set-up, though we do plan to cover and come to up with more cases in the future. So we are calling the current support state – initial:

  • Local client machine: Unix-like (macOS, Linux)
  • Remote host: Linux
  • Sources location: originally on the local host, CLion will synchronize to the remote machine for you
  • Project model: only CMake projects
  • rsync is required to be installed on a remote host

 

Microsoft Cognitive Services C++ SDK--Sebastiano Galazzo

Are you wondering how to use the Microsoft Cognitive Services with C++?

Microsoft Cognitive Services C++ SDK

by Sebastiano Galazzo

Introduction:

The project is a wrapper to use Microsoft Cognitive Services in standard C++ as is currently not supported.

The project provides full support to Computer Vision API. A wrapper to gphoto2 will provide the full control digital cameras (DSLR), getting the raw shot and making manipulations with Computer Vision API.

Available camera-ai, a working commandline example to take a picture from the camera conneced by USB and analyze by Cognitive Services.

A lot of people have a better C++ than mine, who wants to contribute is welcomed!

What’s New in ReSharper C++ 2018.2

While ReSharper C++ 2018.1 introduced two major new features, debug step filters and includes analyzer, ReSharper C++ 2018.2 is focused on improving its understanding of the C++ language. C++17 and C++20 got some special attention. However, the biggest highlight is the long-awaited support for C++/CLI.


What’s New in ReSharper C++ 2018.2

by Igor Akhmetov

From the article:

This release introduced:

  • Initial C++/CLI support
  • C++17 features: class template argument deduction, fold expressions, auto non-type template parameters, pack expansions in using declarations, Using declarations with multiple declarators, guaranteed copy elision, and more
  • C++20 features: coroutines, designated initialization, and some others
  • Integrated spell checking with ReSpeller
  • Formatting inspections

 

 

Using C++17 Parallel Algorithms for Better Performance--Billy O’Neal

Are you using the parallel capacities of the std?

Using C++17 Parallel Algorithms for Better Performance

by Billy O’Neal

From the article:

C++17 added support for parallel algorithms to the standard library, to help programs take advantage of parallel execution for improved performance. MSVC first added experimental support for some algorithms in 15.5, and the experimental tag was removed in 15.7.

The interface described in the standard for the parallel algorithms doesn’t say exactly how a given workload is to be parallelized. In particular, the interface is intended to express parallelism in a general form that works for heterogeneous machines, allowing SIMD parallelism like that exposed by SSE, AVX, or NEON, vector “lanes” like that exposed in GPU programming models, and traditional threaded parallelism.

Our parallel algorithms implementation currently relies entirely on library support, not on special support from the compiler. This means our implementation will work with any tool currently consuming our standard library, not just MSVC’s compiler. In particular, we test that it works with Clang/LLVM and the version of EDG that powers Intellisense...

Metashell 4.0.0 is available

Metashell provides a compile-time debugger for debugging template instantiations and macro usage.

Metashell 4.0.0 is available

From the website:

Some of the major new features in 4.0.0:

  • The template debugger supports the Templight patch already merged into Clang (7.0.0), therefore it does not require custom Clang builds.
  • Preprocessor shell support for GCC, MSVC and Boost.Wave
  • PDB, the preprocessor debugger (similar to MDB, the template debugger)
  • Using different configs in Metashell (for testing the same templates/macros with different compilers)

The full list of changes can be found here.

An online demo can be found at http://metashell.org/about/demo/

Installers can be downloaded from http://metashell.org/getting_metashell/installers#version-400