Product News

ReSharper C++: Better Ways to Test C++ with doctest

doctest stands out with its ability to write tests in a new and easier way, unlocking the potential for more thorough, up-to-date, and uniform testing.

ReSharper C++: Better Ways to Test C++ with doctest

by Viktor Kirilov

From the article:

What truly sets doctest apart is the ability to use it alongside your production code. This is made possible because of 5 main properties:

Going a step further – doctest can even be used as a general-purpose assert library within the production code itself - outside of a testing context!

Here is a direct question/answer thread of a user interested in mixing production code and tests.

Cevelop: New Release 1.12

A new release 1.12 of the free C++ IDE Cevelop is available.


by the IFS Cevelop Team

About the release

Notable new features include the expanded and improved AUTOSAR/MISRA and Core Guideline Codeanalysator beta plug-in with Checkers and Quick-fixes.

General stability and performance improvements, i.e., in our Constificator beta plug-in, for making your code more const correct.


A new technology for C++—Erkam Murat Bozkurt

In this article, a new programming technology for C++ has been introduced.

A new technology for C++ and its application to the multithreading

by Erkam Murat Bozkurt

From the article:

 This technology acts as a separate intelligent actor simplifying software development process. In fact, this technology is a new meta-programming system which builds application specific libraries for its users. The tools that are built on the library construction process collect status information from the process and act as autonomous process management systems. This new programming technology may offer a good alternative for interpreters that are used on high level languages.


Use constexpr for faster, smaller, and safer code—Trail of Bits

More safety, maybe more speed.

Use constexpr for faster, smaller, and safer code

by Trail of Bits

From the article:

With the release of C++14, the standards committee strengthened one of the coolest modern features of C++: constexpr. Now, C++ developers can write constant expressions and force their evaluation at compile-time, rather than at every invocation by users. This results in faster execution, smaller executables and, surprisingly, safer code...

PVS-Studio in the Clouds - Running the Analysis on Travis CI

At the moment, cloud CI systems are a highly-demanded service. In this article, we'll tell you how to integrate analysis of source code into a CI cloud platform with the tools that are already available in PVS-Studio. As an example we'll use the Travis CI service.

PVS-Studio in the Clouds - Running the Analysis on Travis CI

by Oleg Andreev

From the article:

Travis CI is a service for building and testing software that uses GitHub as a storage. Travis CI doesn't require changing of programming code for using the service. All settings are made in the file .travis.yml located in the root of the repository. We'll take LXC (Linux Containers) as a test project for PVS-Studio. It is a virtualization system at the operation system level for launching several instances of the Linux OS at one node. The project is small, but more than enough for demonstration.

HPX V1.3 released—STE||AR Group

The STE||AR Group has released V1.3 of HPX -- A C++ Standard library for parallelism and concurrency.

HPX V1.3 Released

The newest version of HPX (V1.3) is now available for download! This release focuses on performance and stability improvements. Please see here for the full release notes.

    HPX is a general purpose parallel C++ runtime system for applications of any scale. It implements all of the related facilities as defined by the C++ Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 parallel algorithms. Additionally, HPX implements functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the C++ Concurrency TS, Parallelism TS V2, data-parallel algorithms, executors, and many more. It also extends the existing C++ Standard APIs to the distributed case (e.g. compute clusters) and for heterogeneous systems (e.g. GPUs).

    HPX seamlessly enables a new Asynchronous C++ Standard Programming Model that tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with parellism and concurrency.


GCC 9.1 Released

Check it out.

GCC 9.1 Released

From the article:

In this release C++17 support is no longer marked experimental. The C++ front-end implements the full C++17 language (already previous GCC major version implemented that) and the C++ standard library support is almost complete. The C++ front-end and library also have numerous further C++2a draft features. GCC has a new front-end for the D language. GCC 9.1 has newly partial OpenMP 5.0 support and almost complete OpenACC 2.5 support...

ReSharper C++ 2019.1 is released: Doctest support, more C++17 and C++20 features, and better for UE4

ReSharper C++ 2019.1 is just released! It brings Significant performance boosts, C++17 and C++20 features, support for Doctest, more flexible configuration for C++ naming and Clang-Tidy, and productivity features for Unreal Engine developers.

ReSharper C++ 2019.1: More Responsive, Better for Unreal Engine, and with New Language Features

by Anastasia Kazakova

From the article:

This year’s first major update includes the following changes and improvements:
  • Performance improvements, including better start times and quicker navigation actions
  • Visual Studio 2019 support
  • Unreal Engine 4 support
  • More steps towards C++17 and C++20 compliance
  • Updated naming and formatter settings
  • More flexible Clang-Tidy integration
  • Doctest support

Boost 1.70.0 released

Check it out:

Boost 1.70.0 released

From the release notes:

New Libraries​
  • Outcome: A set of tools for reporting and handling function failures in contexts where directly using C++ exception handling is unsuitable, from Niall Douglas.
  • Histogram: Fast and extensible multi-dimensional histograms with convenient interface for C++14, from Hans Dembinski.
Updated Libraries​
  1. Asio:
  • Fixed a Windows-specific memory leak that may occur when system_executor is used.
  • Improved dispatch, post and defer documentation.
  • Fixed compile errors that occur when using the composed read and write operations with MSVC 11.0.
  • Fixed a macOS-specific warning about the deprecation of OSMemoryBarrier.
  • Changed composed asynchronous read and write operations to move buffer sequence objects.
  • Added a fallback error code for when we OpenSSL produces an SSL_ERROR_SYSCALL result without an associated error.
  • Suppressed the eof error on SSL shutdown as it actually indicates success.
  • Ensured SSL handshake errors are propagated to the peer before the local operation completes.
  • Fixed buffer_sequence_begin and buffer_sequence_end to prevent implicit conversion.
  • Changed the range-based asynchronous connect operation to deduce the EndpointSequence iterator type.
  • Fixed calculation of absolute timeout when the backend uses pthread_cond_timedwait.
  • Changed receive operations to return the correct number of bytes transferred when truncation (error::message_size) occurs on a datagram-oriented socket.
  • Enabled recycling of the memory used to type-erase a function object with the polymorphic executor.
  • Added a new BOOST_ASIO_DISABLE_VISIBILITY configuration #define.
  • Added the noexcept qualifier to various functions.
  • Added a constructor for local::basic_endpoint that takes a string_view.
  • Relaxed the completion condition type requirements to only require move-constructibility rather than copy-constructibility.
  • Added a make_strand helper function.
  • Added a new async_compose function that simplifies the implementation of user-defined asynchronous operations.
  • Added a new DynamicBuffer_v2 concept which is CopyConstructible.
  • Updated the Coroutines TS support and promoted it to the asio namespace.
  • Added a new async_result form with an initiate static member function.
  • Added the ability to use custom I/O executors with I/O objects (such as sockets).
  • This release includes a number of new features, bug fixes, performance enhancements, and documentation improvements. Notable changes include:
  • Consult the Revision History for further details.