Clang-Tidy, part 1: Modernize your source code using C++11/C++14—Kevin Funk

Do you know what is clang-tidy and how to use it?

Clang-Tidy, part 1: Modernize your source code using C++11/C++14

by Kevin Funk

From the article:

This blog series will introduce the clang-tidy utility from the Clang/LLVM project and show how to use it to automatically refactor C++ source code and integrate with your build system, as well as how to use the tool on other platforms than Unices.

Singleton revisited—Giuseppe Puoti

The use of Singleton is often justified by the will of being able to easily refer to a unique object from any point. Giuseppe Puoti describes an alternative:

Singleton revisited

by Giuseppe Puoti

From the article:

It happens quite often to deal with those annoying objects, used everywhere in your applications. This may be because of a poorly designed application but, sometime, it is simply an inevitable condition...

CppCast Episode 93: C++ Game Development at Blizzard with Ben Deane

Episode 93 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Ben Deane from Blizzard Entertainment to talk about C++ game development and more.

CppCast Episode 93: C++ Game Development at Blizzard with Ben Deane

by Rob Irving and Jason Turner

About the interviewee:

Ben started in the games industry in the UK in 1995, when he got hired at Bullfrog straight after graduating from university. While there he worked on several games there like Syndicate Wars and Dungeon Keeper. By the late 1990s he had stopped using C and was allowed to use C++ at work. In 2001 he moved to Kuju Entertainment and did a couple of games on XBox and PS2, then in 2003 he was hired by EA again and moved to Los Angeles, where he worked on the Medal of Honor series. He's always been a network game programmer, and in 2008 after a project cancellation at EA, he joined Blizzard as a lead engineer on Battle.net, working on technology for all of Blizzard's games. Today he's a principal engineer at Blizzard and the technical lead on the Battle.net desktop application. He's also a functional programming hobbyist who tries to use what he learns in Haskell to write better C++, and in recent years he has given several C++ conference talks at C++Now and CppCon.

PVS-Studio: searching software weaknesses

As we check Apache HTTP Server, we see bugs crawling everywhere across the code. But wait! These are not just bugs, but security weaknesses!

PVS-Studio: searching software weaknesses

by Andrey Karpov, Phillip Khandeliants

From the article:

PVS-Studio has always been able to detect a large number of various security defects (potential vulnerabilities) in the program code. However, historically, we positioned PVS-Studio as a tool to search for errors. We see a trend in the software development to look for vulnerabilities in the code, although it is just the same. It seems to us that it is high time to do the rebranding of our static analyzer PVS-Studio. We will start with Common Weakness Enumeration (CWE). This article provides a table that shows matches of PVS-Studio diagnostic warnings of with the classifier. The table will be gradually updated and changed, but we can already use the table to write articles about security defects detected in projects. We suppose it would attract more attention of the software security specialists.

C++ Braced Initialization—Edouard of quasardb

Do you use it?

C++ Braced Initialization

by Edouard of quasardb

From the article:

Since C++ 11 it's possible to use braces for construction and initialization. Although this is something you could ignore for the code you write, it's obviously important to know for the code you may read.

If you have a couple of years of experience in C++, the temptation can be great to keep your old habits because "All these new features are useless! The language is bloated! Those people in the committee!".

Let's make sense out of the bloat...

CppChat[14] SFINAW

CppChat:

CppChat[14]: SFINAW

with Bryce Adelstein Lelbach, Jonathan Müller (foonathan), Odin Holms, and Jon Kalb

From the chat:

Bryce, Jonathan, Odin, and Jon discuss the Kona meeting, Visual Studio 2017, CppCast, Meeting C++ Live, and more.

I Wrote The Fastest Hashtable—Malte Skarupke

This is Malte's third article on hash table design. His solution shows favorable performance against std::unordered_map, boost::multi_index, google::dense_hash_map, and more. Malte includes intuitive descriptions of why each design decision was made and what tradeoffs might exist. The article also describes some interesting artifacts in the implementations of other hash table implementations.

I Wrote The Fastest Hashtable

by Malte Skarupke

From the article:

There are many types of hashtables. For this one I chose

  • Open addressing
  • Linear probing
  • Robing hood hashing
  • Prime number amount of slots (but I provide an option for using powers of two)
  • With an upper limit on the probe count

I believe that the last of these points is a new contribution to the world of hashtables. This is the main source of my speed up, [...]

C++::London talk: A polymorphic value-type for C++

On 25th January at CodeNode, London, Jonathan Coe presented polymorphic_value<T> to the C++::London meetup group.

The class template polymorphic_value is proposed for addition to the C++ Standard Library. The class template, polymorphic_value, confers value-like semantics on a free-store allocated object. A polymorphic_value<T> may hold an object of a class publicly derived from T, and copying the polymorphic_value will copy the object of the derived type.

A polymorphic value-type for C++ (Video)

About the presenter:

Jonathan is a mathematical developer using modern C++ and Python. He has worked in academia and the financial and energy industries. He's been a participant in the C++ standards committee since 2014.

“What’s new in C++11/14?” Training in Berlin, 04-06 April 2017

Join us in the upcoming C++11/14 training in Berlin, 04-06 April 2017.

What's new in C++11/14?

Training course by KDAB

About the training

C++11 is a new major version of the C++ standard, released in 2011, and brings many new features to C++ that make the language safer, faster as well as easier and more fun to use. Every professional C++ developer will sooner or later come into contact with C++11/C++14 and introducing its advantages early can only be beneficial.

In this hands-on C++11 and C++14 training for professional C++ developers, you will learn the language changes and the standard library changes introduced in C++11 as well as the changes from C++14.

In class, C++11 and C++14 will be demonstrated with the aid of many examples, and you will get the opportunity to use C++11 and C++14 right away in our lab projects.

The full table of contents for the course is available here.