Meeting 121 (11 Feb 2021)

Perhaps it’s time for a more opinionated dialect of C++

Latest C++: theory vs. reality

C++ vs Rust performance

If you were allowed to make breaking changes to the C++ specification, what features would you modify/replace/remove to make the language better?

A Year of Conference Talks from the Microsoft C++ Team

C/C++ Search Extension

Modern C++: Snippets and Examples

Modern C++ Tip of the Week

INI-config

A single-header C++20 library that converts INI-formatted string literals to a key-value pair list at compile-time.

 1#include "ini_config.hpp"
 2
 3constexpr auto config = R"(
 4[Cat]
 5color = gray
 6lives = 9
 7)"_ini;
 8
 9for (auto kvp : config) {}
10for (auto kvp : config.section("Cat")) {}
11config.get("Cat", "lives"); // => "9"
12config.get<int>("Cat", "lives"); // => 9
13config.get("Dog", "lives"); // => ""

mocxx: a versatile C++ function mocking framework based on Frida, by Guardsquare

A versatile C++ function mocking framework. It replaces a target function with the provided implementation, and integrates well with existing testing and mocking frameworks. (C++17, GPL-3.0)

No macros! Doesn’t support mocking virtual functions yet.

Compile 1 Million Lines Of C++ In ~2 Minutes With A 16 Core Ryzen 9 5950x

Dev-C++

A fast, portable, simple, and free C/C++ IDE for Windows, built in Delphi

Using std::list::splice to implement a LRU cache

What should the state of a moved-from object be?

Reducing Memory Consumption in Visual Assist

dont_deduce<T>

C++11

1template <class T> struct foo_t { using type = T; };
2template <class T> using foo = typename foo_t<T>::type;

C++20

1template <typename T>
2auto operator+(
3  vec3<T> const& a,
4  std::convertible_to<T> auto const& b
5) -> vec3<T>;

Writing a custom iterator in modern C++ (C++17)

C++ for Swift developers

Wrapping C++ for use in Swift

Tracy Profiler

A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.

Tracy supports profiling CPU (C, C++11, Lua), GPU (OpenGL, Vulkan, OpenCL, Direct3D 12), memory, locks, context switches, per-frame screenshots and more.

Functional programmers