community

Overload 153 is now available

ACCU’s Overload journal of October 2019 is out. It contains the following C++ related articles.

Overload 153 is now available

From the journal:

Predictions and Predilections.
Forecasting the future is difficult. Frances Buontempo has a foreboding sense that a lack of impartially makes things even harder.

Scenarios Using Custom DSLs.
Natural-language BDD can be hard to maintain. Liz Keogh demonstrates a simple code-based alternative.

OOP Is not Essential.
People tend to love or hate Object Oriented Programming. Lucian Teodorescu considers a recent OOP claim.

I Come Here Not to Bury Delphi, But to Praise It.
What helps a programming language gain traction? Patrick Martin remembers why he used to use Delphi.

C++ Pipes.
Expressive code can make life easier. Jonathan Boccara demonstrates fluent pipelines for collections in C++.

Code analysis with clang-tidy in Visual Studio--Eli Fessler

The safest safety comes from the tools.

Code analysis with clang-tidy in Visual Studio

by Eli Fessler

From the article:

Visual Studio 2019 version 16.4 Preview 1 brings a significant improvement to the C++ code analysis experience: native support for clang-tidy, a Clang-based “linter” tool developed by the LLVM Project that delivers a variety of code improvements such as modernization and standards conformance, static analysis, and automatic formatting...

ACCU 2020 Call for Proposals

The ACCU 2020 is now putting together its program, and they want you to speak on C++. The ACCU has strong C++ tracks, though it is not a C++-only conference. If you have something to share, check out their

Call for Proposals

by the ACCU

About the conference:

Historically, ACCU has a lot of C++ and C content, and is proud of that: ACCU is the foremost annual conference for people interested in C++ and C, at least in and around the UK. But it is not just a C++ and C conference, ACCU is about programming in whatever language people are using, with whatever tools and processes people are using: D, Chapel, Java, Kotlin, C#, F#, Groovy, Rust, Go, Python, Ruby, Lisp, to name just a few programming languages about which there have been sessions at ACCU conferences. Git, Mercurial, CMake, Meson, TDD, BDD, allthese tools and techniques have been the focus of sessions at ACCU. The ACCU Conference is looking for sessions that will be interesting to people who create software.

The ACCU Conference is put on by ACCU (https://accu.org), but is open to anyone who wishes to be there either as a presenter or an attender.

The Call for Papers lasts for about 3 weeks and will close on Friday 2019-10-25 23:59+01:00.

Cppcon 2019 Milestone | New Home | Trip Reports--Jon Kalb

Many things happened.

Milestone | New Home | Trip Reports

by Jon Kalb

From the article:

CppCon 2019 was the first year in our new home at the Gaylord Rockies in Aurora, Colorado.

Long before I’d ever done it, I told people that I thought that moving a conference is almost as much work as starting one from scratch. Now that I have moved a conference, I’ve learned that started a conference from scratch is actually easier than moving that conference after it has been growing in one location for five years...

Join the Maryland C++ User Group

If you live in the area.

Join the Maryland C++ User Group

From the article:

After looking for and failing to find a C++ user group in Maryland, I decided to start one. If you live in the Baltimore/DC/NoVA area, use C++ for work or pleasure, and are interested in attending monthly-ish meetings related to C++, please join the meetup group at https://meetup.com/CppMaryland/. Topics for discussion will include current (C++11/14/17) features, the upcoming C++20 standard, build tools, standard containers and algorithms, design patterns, and pretty much anything else that might benefit a C++ developer...

Expressive Code for State Machines in C++--Valentin Tolmer

Compiler checks are the best!

Expressive Code for State Machines in C++

by Valentin Tolmer

From the article:

Have you ever run into this kind of comments?

// IMPORTANT: Do not call this function before calling SetUp()!

Or checks like these:

if (my_field_.empty()) abort();

Those are all symptoms of a (often light-weight) protocol that our code must respect. Or sometimes, you have an explicit protocol that you’re following, such as in the implementation of an SSL handshake or other business logic. Or maybe you have an explicit state machine in your code, with the transitions checked each time against a list of possible transitions.

Let’s have a look at how we can expressively handle these cases...

CppCon 2019: De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable--Herb Sutter

What do you think about it?

De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable

by Herb Sutter

From the video:

A fundamental reason why C++ is successful and loved is its adherence to Stroustrup’s zero-overhead principle: You don’t pay for what you don’t use, and if you do use a feature you can’t reasonably code it better by hand. In the C++ language itself, there are only two features that violate the zero-overhead principle, exception handling and RTTI – and, unsurprisingly, these are also the only two C++ language features that every C++ compiler has switches to turn off and that are regularly discouraged or even banned. This matters because not using these features is the largest current cause of fragmentation of the C++ community into incompatible dialects, and the cause of recurring problems including type confusion security vulnerabilities arising from “didn’t down-cast using dynamic_cast because that would be too slow.” This talk is about ongoing long-term efforts to try to unify the community in this area, not by replacing exceptions and RTTI, but by doubling down: fully embracing exceptions and RTTI, and improving them so they can be zero-overhead too.