November 2018

CppCast Episode 174: Learning C++ with Devon Labrie

Episode 174 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Devon Labrie to discuss his experience learning C++ at Augusta Tech and being a first time attendee at CppCon.

CppCast Episode 174: Learning C++ with Devon Labrie

by Rob Irving and Jason Turner

About the interviewee:

Devon is a 26 year old coming from a military family, he enjoys challenges physically and mentally, playing video games and creating them, learning, watching tv, puzzles, art, science, comedy, philosophy, programming and of course C++.

Using STL algorithms with cppcheck--Paul Fultz II

Making the code more expressive.

Using STL algorithms with cppcheck

by Paul Fultz II

From the article:

From Sean Parent’s C++ Seasoning talk, he explains how raw loops suffer from several issues:

  • Difficult to reason about and difficult to prove post conditions
  • Error prone and likely to fail under non-obvious conditions
  • Introduce non-obvious performance problems
  • Complicates reasoning about the surrounding code

Instead algorithms should be preferred, either using the algorithms in the standard library or writing a new algorithm. Even more so, Sean Parent suggests that all coding guildines should be replaceed with “No raw loops” in order to improve code quality...

Exploring Clang Tooling Part 3: Rewriting Code with clang-tidy--Stephen Kelly

The series continue.

Exploring Clang Tooling Part 3: Rewriting Code with clang-tidy

by Stephen Kelly

From the article:

In the previous post in this series, we used clang-query to examine the Abstract Syntax Tree of a simple source code file. Using clang-query, we can prototype an AST Matcher which we can use in a clang-tidy check to refactor code in bulk.

This time, we will complete the rewriting of the source code...

Modules Are Not Precompiled Headers--Guillaume Racicot

Interesting talk about modules.

Modules Are Not Precompiled Headers

by Guillaume Racicot

From the article:

Modules have been the subject of many controversies in the C++ community in the recent past and there seem to be some misconception floating around recently about modules. Important decisions will soon be made, and I wanted to clear some of the facts and raise potentially good questions about modules and the path to their adoption.

I do not want to argue about how modules should have been and what should have not been. Instead I want to talk tabout modules as they are today, in the merged proposal.

Introducing Conduit for C++: Lazy Sequences Using the Coroutine TS--Buckaroo

It is worth looking at it.

Introducing Conduit for C++: Lazy Sequences Using the Coroutine TS

by Buckaroo

From the article:

Conduit is a new library that leverages the Coroutine TS to introduce lazy sequences to C++.

Lazy sequences are an idea that’s very popular in the functional-programming community, but less common in the C++ world.

Simply put, a lazy sequence is one where the elements are computed as they are requested, rather than in advance.
This can lead to big efficiency gains since you only perform the computation required. It also allows you to represent infinite sequences, which of course could never fit into a vector!

Let’s see how Conduit works with some simple examples…

Pacific++ 2018: C++ Past vs. Future--Titus Winters

Did you see it?

Pacific++ 2018: C++ Past vs. Future

by Titus Winters

From the video:

Over the last 35 years, C++ has remained a constant fixture in the programming landscape. With advancements in the language through C++11, 14, and 17, we've created new dialects that have breathed new life into C++. With C++ Core Guidelines and a rich community of authors and speakers providing guidance on C++, it is easier now to steer clear of problem areas and hopefully stay in the "good parts" of the language.
Or at least, that's what we'd like. In practice, many habits of C++ programmers are unsafe and will be hard to keep working. The triple perils of ADL, ODR, and ABI leave a wide assortment of pitfalls for code maintenance. Many systems happen to work, but perhaps more out of luck than actual correctness.
How do we explain this dichotomy? How is the language better than it ever has been, and at the same time so dangerous and burdened with silent pitfalls and legacy? Can the standard evolve over time to reduce these perils? More importantly: should it?
In this talk I'll remind people of how precarious most C++ code is in the face of change (like advancing to a new language version), and discuss the most fundamental issue facing the committee these days: how to balance between the legacy code of the past and the yet-to-be-written code of the future.

Pre-trip report: Fall ISO C++ standards meeting (San Diego) -- Herb Sutter

An update in advance of the meeting that begins later today:

Pre-trip report: Fall ISO C++ standards meeting (San Diego)

by Herb Sutter

From the article:

In one hour, our fall meeting will begin. I’ll still write a trip report at the end with the results of the meeting, but because this is an unusually (and historically) large meeting we’ve had to make a few adjustments...

CppCast Episode 173: C++ Bestiary with Adi Shavit

Episode 173 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Adi Shavit to discuss his spooky C++ Bestiary Blog post, CppCon talks and an announcement from the Core C++ User Group in Israel.

CppCast Episode 173: C++ Bestiary with Adi Shavit

by Rob Irving and Jason Turner

About the interviewee:

Adi is an entrepreneur, speaker, consultant, software architect and a computer vision and machine learning expert with an emphasis on real-time applications. He specializes in building cross-platform, high-performance software combined with high production quality and maintainable code-bases. Adi is the founder of the Core C++ users group in Israel.
Having worked on proprietary software for most of his career, his most visible contribution to the world of open-source software is, somewhat ironically, the design of the OpenCV logo.