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...

Starting Jobs with Coroutines

More coroutines.

Starting Jobs with Coroutines

by Rainer Grimm

From the article:

C++20 has three new keywords to make a coroutine out of a function: co_return, co_yield, and co_await. co_await requires an Awaitable as arguments and starts the Awaiter workflow. Let me show in this post, what that means...

All C++20 core language features with examples--Oleksandr Koval

All you want to know about c++20!

All C++20 core language features with examples

by Oleksandr Koval

From the article:

The story behind this article is very simple, I wanted to learn about new C++20 language features and to have a brief summary for all of them on a single page. So, I decided to read all proposals and create this “cheat sheet” that explains and demonstrates each feature. This is not a “best practices” kind of article, it serves only demonstrational purpose. Most examples were inspired or directly taken from corresponding proposals, all credit goes to their authors and to members of ISO C++ committee for their work. Enjoy!