Meeting 104 (16 April 2020)

Follow-up: How I Declare My class And Why, by Howard Hinnant


  • data members
  • destructor
  • default constructor
  • copy special members
  • move special members
  • other constructors
  • other member functions

Follow-up: References, simply, by Herb Sutter

Welcome back to C++ - Modern C++

Epic 10-hour C++ port of Doom by Jason Turner

Elements C++ GUI library, by Joel de Guzman

{fmt} V6.2.0

Continuable V4.0

C++14 asynchronous allocation aware futures (supporting then, exception handling, coroutines and connections), by Denis Blank


Sweet and creamy print debugging. C++ flavored, by Renato Garcia

The C++ Lifetime Profile: How It Plans to Make C++ Code Safer

The C++ rvalue lifetime disaster, by Arno Schödl

See also: Abseil Tip of the Week #107: Reference Lifetime Extension

1std::string Foo::GetName();
2const std::string& name = obj.GetName();  // Is this safe/legal?

A new decade, a new tool: libman

libman is a new level of indirection between package management and build systems.

dds is Drop-Dead Simple build and package manager.

“Making new friends” idiom by Dan Saks


The goal is to simplify creation of friend functions for a class template.

 1#include <iostream>
 2template<typename T>
 3class Foo {
 4   T value;
 6   Foo(const T& t) { value = t; }
 7   friend std::ostream& operator <<(std::ostream& os, const Foo<T>& b)
 8   {
 9      return os << b.value;
10   }

Book: The C++ Annotations, V11.4.0