April 2021

Finding Bugs with AddressSanitizer: MSVC Compiler--Augustin Popa

A very useful tool.

Finding Bugs with AddressSanitizer: MSVC Compiler

by Augustin Popa

From the article:

The AddressSanitizer (ASan) is generally available for MSVC since the recently-released Visual Studio 2019 version 16.9. We’ve already shown how easy it can be to find bugs in even production-ready code like EASTL. Here I’ll share an example of how it found a real bug in the MSVC compiler itself.

The idea was straightforward: ASan finds bugs, and we’re always interested in finding bugs in the compiler. Just like you can turn ASan on in your projects and run your tests, we’ve been turning on ASan on our project (the compiler) and running it on our tests. Sure enough, this found bugs...

Sign Up for the Pure Virtual C++ 2021 Conference

The second iteration of the free Pure Virtual C++ conference is now open to sign-ups

Sign Up for the Pure Virtual C++ 2021 Conference

by Sy Brand

From the article:

Last year we ran the first Pure Virtual C++, a free one-day virtual conference for the whole C++ community. This May we’re doing it again! Sign-up for free on the website to be the first to hear about our program schedule, access our extra on-demand C++ demos, and get more virtual surprises.

ReSharper C++ 2021.1: Syntax Style, New C++ Features, and Improved Unreal Engine Support

ReSharper C++ 2021.1 is released!

ReSharper C++ 2021.1: Syntax Style, New C++ Features, and Improved Unreal Engine Support

by Elvira Mustafina

About the release

ReSharper C++ 2021.1 brings support for several new C++20 and C++17 language features, adds new inspections, and improves Unreal Engine support. You can now configure ReSharper C++ to match your code style even more closely with a new set of syntax style settings. The accompanying quick-fixes and context actions help you keep your code style consistent and update your code with ease.

  • C++ support: class types in non-type template parameters, C++20 class template argument deduction rules, noexcept as a part of the function type, and code completion for coroutines.
  • Unreal Engine: initial support for Unreal Engine 5, a postfix template for Cast, and support for the RIGVM_METHOD reflection macro.
  • Syntax style: a new set of code style settings for various aspects of the C++ syntax with accompanying inspections, quick-fixes, and context actions.
  • Code cleanup: new code cleanup tasks, the Cleanup selection context action, and performance improvements.
  • Code analysis: inspections with quick-fixes for redundant casts, template arguments that can be deduced, and variables that can be moved to the inner scope.

CLion 2021.1 release: global DFA, postfix completion, more MISRA checks, and other changes

CLion 2021.1 is released!

CLion 2021.1: New Code Analysis Options, Updates to Remote Mode, and Postfix Completion

by Anastasia Kazakova

About the release:

The CLion 2021.1 release is here! It catches more potential code quality issues,
enhances the debugging experience, and brings a more capable remote mode.

  • Code analysis
    • Global DFA is added and takes a whole translation unit of a program as a single unit for analysis to capture more potential issues.
    • New checks from MISRA C 2012 and MISRA C++ 2008 are introduced.
    • Clazy, a Qt-oriented static code analyzer, is now integrated into CLion.
  • Dynamic analysis tools
    • CLion can now calculate branch coverage.
    • Google Sanitizers, Valgrind Memcheck, and code coverage now works with remote toolchains.
  • Postfix completion for C and C++.
  • A new Open Project wizard.
  • Debugger:
    • GDB and LLDB have reached feature parity for core dump debugging in CLion.
    • Move execution point now works in the disassembly view.
  • For CMake projects:
    • Bundled CMake is upgraded to 3.19.
    • An ability to share CMake Profiles in VCS.
  • For Makefile projects:
    • Initial support for remote Makefile projects.
    • The Makefile Language plugin is now bundled into CLion.
  • VCS
    • Profile for pre-commit inspections.
    • Git commit templates.
  • Code With Me, a new JetBrains service for collaborative development and pair programming, is now bundled with CLion.

C++ Lambda Story in Print -- Bartlomiej Filipek

<img alt="" data-cke-saved-src="https://www.cppstories.com/2021/images/lambda_print.png" src="https://www.cppstories.com/2021/images/lambda_print.png" 138px;="" height:="" 160px;="" float:="" right;"="" style="float: right; height: 267px; width: 230px;">I'm happy to announce that my book on Lambdas is complete and available in paperback/print version!

C++ Lambda Story in Print

by Bartlomiej Filipek

About the book

I packed my knowledge about lambdas into a beautiful ebook, with lots of examples and additional descriptions. And just as with my book about C++17, I made it available at Leanpub. The platform makes it easy for me to publish new updates, and everyone who has the book can immediately access the latest changes (at no charge). Also, the platform allows you to read it as PDF and Epub, Mobi or Online.

Mathematical constants in C++20

Hightlighting a less known C++20 feature:

Mathematical constants in C++20

by Jens Weller

From the article:

When I researched the library and language features of C++20 for the Meeting C++ Community survey, this feature catched my eye.

And I thought its such a nice small feature, I should mention it on the blog. As all other C++20 blog posts right now seem to be about coroutines. It also is a nice follow up on an old blog of mine: C++ & π, where I showed the various ways of obtaining pi for C++ in 2013...

Sign Up for the Pure Virtual C++ 2021 Conference--Sy Brand

Will you attend?

Sign Up for the Pure Virtual C++ 2021 Conference

by Sy Brand

From the article:

Last year we ran the first Pure Virtual C++, a free one-day virtual conference for the whole C++ community. This May we’re doing it again! Sign-up for free on the website to be the first to hear about our program schedule, access our extra on-demand C++ demos, and get more virtual surprises...

C++ coroutines: Building a result holder for movable types--Raymond Chen

The series continue.

C++ coroutines: Building a result holder for movable types

by Raymond Chen

From the article:

One of the pieces we need for the simple_promise we use to construct a coroutine is what we have been calling the “result holder”. This is basically a variant that starts out empty, and can atomically transition to holding either the result of a successful coroutine, an exception pointer for a failed coroutine...