Product News

winrt::fire_and_forget was too forgetful

Heard about it?

winrt::fire_and_forget was too forgetful

by Raymond Chen

From the article:

C++/WinRT provides a handy helper class called winrt::fire_and_forget. It lets you specify that nobody is going to observe the result of the coroutine. This is handy because it lets you tell the compiler that the lack of observation is intentional, so it won’t generate a warning...

Game performance and compilation time improvements in Visual Studio 2019—Gratian Lup

Getting better!

Game performance and compilation time improvements in Visual Studio 2019

by Gratian Lup

From the article:

The C++ compiler in Visual Studio 2019 includes several new optimizations and improvements geared towards increasing the performance of games and making game developers more productive by reducing the compilation time of large projects. Although the focus of this blog post is on the game industry, these improvements apply to most C++ applications and C++ developers...

Understanding GCC warnings—Martin Sebor

In detail.

Understanding GCC warnings

by Martin Sebor

From the article:

Most of us appreciate when our compiler lets us know we made a mistake. Finding coding errors early lets us correct them before they embarrass us in a code review or, worse, turn into bugs that impact our customers. Besides the compulsory errors, many projects enable additional diagnostics by using the -Wall and -Wextra command-line options. For this reason, some projects even turn them into errors via -Werror as their first line of defense. But not every instance of a warning necessarily means the code is buggy. Conversely, the absence of warnings for a piece of code is no guarantee that there are no bugs lurking in it...

CppDepend v2019.1 Released including Misra C++ Standard!

We are happy to inform you that CppDepend v2019.1 has been released and is now available for download! CppDepend allows architects and developers to analyze C and C++ code base, customizing your own coding rules, and facilitate refactoring and migration.

CppDepend v2019.1

by CppDepend

About the release:

includes important updates:

  • Misra C++ standard checks:  CppDepend 2019.1 provides now out of the box 90 MISRA guidelines to facilitate code safety, security, portability, and reliability.
  • Plugins execution optimization: in order to get the CppDepend results quickly, the execution of the plugins are now executed in asynchronous mode. Their results will be loaded as soon as the analysis is done.
  • Clang Tidy customization: The Clang tidy tool checks against many standards and guidelines which makes it very slow, To optimize its execution you can now change its command line arguments to check only what you want as guidelines.
  • (Improvement) Many bug fixes and improvements including SonarQube 7.6 compatibility.

Download and enjoy the new version of CppDepend now by clicking here.

Formatting user-defined types with {fmt} library—Wojtek GumuĊ‚a

The future.

Formatting user-defined types with {fmt} library

by Wojtek Gumuła

From the article:

C++ has two standardized ways of printing formatted text out already: printf-family functions inherited from C and I/O streams abstraction built on operator<<. Streams are considered more modern, providing type-safety and extensibility functionalities. However, printf have some notable advantages, too — at the cost of lost type-safety, user can use an interface that looks familiar to almost all developers, allowing for some ways of localization and more readable syntax. And then, there is {fmt} — yet another text formatting library, inspired by design already available in languages like Python and Rust...

Conan.io: Package management in C++

Diego Rodríguez-Losada is interviewed about Conan.io

Package management in C++

by Andrew Nesbitt and Alex Pounds

Though a bit outdated because it was recorded 9 months ago, still or, in fact, more than valid knowledge about tooling in C++. From the excerpt: We talk about what inspired the development of Conan, package management problems specific to C/C++ package management and the plans for the future.

 

HPX V1.2.1 released—STE||AR Group

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

HPX V1.2.1 Released

The newest version of HPX (V1.2.1) is now available for download! Please see here for the release notes. This release is a pure bug fix release that addresses a couple of compatibility problems (in particular with Boost V1.69). We have also included some important improvements that were merged since the previous release.

    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.

 

Using VS Code for C++ development with containers—Marc Goodner

It can do it.

Using VS Code for C++ development with containers

by Marc Goodner

From the article:

This post builds on using multi-stage containers for C++ development. That post showed how to use a single Dockerfile to describe a build stage and a deployment stage resulting in a container optimized for deployment. It did not show you how to use a containers with your development environment. Here we will show how to use those containers with VS Code. The source for this article is the same as that of the previous article: the findfaces GitHub repo...