December 2018

CppCast Episode 179: San Diego EWGI Trip Report with JF Bastien

Episode 179 of CppCast the first podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by JF Bastien from Apple joins us to discuss the San Diego C++ Committee meeting from his perspective as the chair of the new Evolution Working Group Incubator.

CppCast Episode 179: San Diego EWGI Trip Report with JF Bastien

by Rob Irving and Jason Turner

About the interviewee:

JF Bastien is the C++ lead for Apple's clang front-end, where he focuses on new language features, security, and optimizations. He’s an active participant in the C++ standards committee, where he chairs the Language Evolution Working Group Incubator (“oogie” for short). He previously worked on WebKit’s JavaScriptCore Just-in-Time compiler, on Chrome’s Portable Native Client, on a CPU's dynamic binary translator, and on flight simulators.

Deducing your intentions—Andrzej Krzemieński

Were you aware?

Deducing your intentions

by Andrzej Krzemieński

From the article:

The language feature in C++17 known as class template argument deduction was intended to supersede factory functions like make_pair, make_tuple, make_optional, as described in p0091r2. This goal has not been fully achieved and we may still need to stick to make_ functions. In this post we will briefly describe what class template argument deduction is, and why it works differently than what people often expect...

AI-Assisted Code Completion Suggestions Come to C++ via IntelliCode—Nick Uhlenhuth

Impressive.

AI-Assisted Code Completion Suggestions Come to C++ via IntelliCode

by Nick Uhlenhuth

From the article:

After reading and writing enough code, you begin to notice certain usage patterns. For example, if a stream is open, it will eventually be closed. More interestingly, if a string is used in the context of an if-statement, it will often be to check if the string is empty or if it has a certain size. You begin to identify and use these coding patterns over time, but what if Visual Studio already knew these common patterns and could suggest them to you as you code? That’s exactly what IntelliCode does...

wxWidgets 3.1.2 released

New 3.1.2 release of wxWidgets, free and open source library for creating native GUI applications, is now available. 

wxWidgets 3.1.2 Release

by wxWidgets

About the release:

There have been more than 1200 commits from 75 contributors (41 with multiple contributions) since 3.1.1, which makes it difficult to summarize them in this short post. The primary focus of this release is on bug fixes (closing more than 100 bugs from wxTrac) and incremental improvements in preparation for the next stable 3.2.0 release, however there is a usual lot of new features as well, including:

Initial support for macOS 10.14 and its dark mode.
Support for non-integer font sizes and arbitrary font weights.
New wxLZMA{Input,Output}Stream classes.
Add wxDataViewToggleRenderer::ShowAsRadio(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxToolbook::EnablePage().

Standard Ranges—Eric Niebler

Coming soon.

Standard Ranges

by Eric Niebler

From the article:

As you may have heard by now, Ranges got merged and will be part of C++20. This is huge news and represents probably the biggest shift the Standard Library has seen since it was first standardized way back in 1998.

This has been a long time coming. Personally, I’ve been working toward this since at least November 2013, when I opined, “In my opinion, it’s time for a range library for the modern world,” in a blog post on input ranges. Since then, I’ve been busy building that modern range library and nailing down its specification with the help of some very talented people.

Future blog posts will discuss how we got here and the gritty details of how the old stuff and the new stuff play together (we’re C++ programmers, we love gritty details), but this post is strictly about the what...

span: the best span—Barry Revzin

An answer.

span: the best span

by Barry Revzin

From the article:

This post is a response to RangeOf: A better span, which has many problems worth addressing in detail. While most of this post will deal with specifically std::span<T> (which is indeed the best span), the last section will also discuss a recent addition to the standard library: std::ranges::subrange<T*>...

PVS-Studio: Support of MISRA C and MISRA C++ Coding Standards

Starting with the version 6.27, the PVS-Studio static code analyzer can classify its warnings according to MISRA C and MISRA C++ standards. Due to support of these standards it has become possible to effectively use the analyzer to increase the level of security, portability and reliability of programs for embedded systems.

PVS-Studio: Support of MISRA C and MISRA C++ Coding Standards

by Andrey Karpov

From the article:

Such diagnosis can't be applied to already existing projects developed for Windows, Linux or macOS operating systems. For example, only one rule about curly brackets described above gives 1947 warnings of the V2507 diagnostic (MISRA C 15.6, MISRA C++ 6-4-1) for a WinMerge project. Still WinMerge is a small project! In total, only 250 000 lines of code in C and C# languages.

Haifa::C++ meetup - Future direction of C++ and C++20: on the road towards heterogeneous programming

The upcoming Haifa::C++ meetup (Dec. 18) will feature a special talk:

Future direction of C++ and C++20: on the road towards heterogeneous programming

By Michael Wong

From the event description:

C++ 20 is sure to be a major release but have you ever wondered if there is a direction to C++?
The first half of this talk will devote to the Directions Groups' description of where future C++ is heading and show some of the features that have already landed towards C++20. Next, the current status of parallel programming support in C++ will be discussed, along with an outline of the upcoming features related to parallelism in C++20 and TSs. Lastly, the way C++ moves towards heterogeneous support will be highlighted, describing changes that started in C++11 with lambda, pushed forward with C++17 with Thread of Execution, and soon to enter C++20 with executors. These form a subtle but definite direction towards heterogeneous programming support.

 

SG20 Education and Recommended Videos for Teaching C++—Christopher Di Bella

In today’s blog, we look at both the newly minted Study Group for education in the C++ Standard Committee. We also look at a small number of conference videos that I recommend teachers consider while they’re waiting for this Study Group to produce usable materials.

SG20 Education and Recommended Videos for Teaching C++

by Christopher Di Bella

From the article:

As articulated in P1231, the goal of SG20 is not to provide normative curricula for teaching C++, but rather to provide teaching and curriculum guidelines.

...

Below are a list of conference videos that I’ve compiled for teachers to watch (and will update if recommendations come in). There’s well over a day’s worth of videos below, but these aren’t a random assortment of my favourite conference videos. Rather, they are sessions that communicate values about:

  • teaching people how to write programs using C++, or
  • writing C++ programs using approaches the community agrees produce better code.