This is feedback after considering A Plan for C++23 Ranges Disclosure: I voted in favor of this. It does not suggest work on views::maybe [P1255R6]. I'm fine with that priority. Vocabulary is not just Types between Components There's broad agreement that 'vocabulary types' belong in the standard. Domain independent types that can be used between [...]
Blog Infrastructure Work
What feels like actual productive work, but is only work adjacent? Fixing up the blog. I managed to gradually destroy the whole thing after a decade or more of platform migrations and upgrades. This is a new and from (mostly) scratch install, into which I've imported the contents of the old one. Good backups and [...]
Value Oriented Programming: A Manifesto
Object Oriented Programming The primitive entities are objects which have certain properties Objects have Identity Objects have State Objects have Behavior Values are not Objects The primitive entities are values which have none of the properties of Objects Values have no identity Values have no State Values have no Behavior A positive definition of VOP [...]
AnyDuck : A Value Type Erased Type
A Constrained Duck Typed Value Type For yak shaving reasons, I need a type able to hold any type conforming to a particular interface. I'd like this to act as a (Semi)Regular value type. That is, I'd like it to be copyable, assignable, and so forth, and not be sliced or otherwise mangeled in the [...]
Steve Downey’s Birthday (Observed)
LOCATION: Blooms Tavern208 East 58th StreetBetween 2nd & 3rd AveNew York, NY 10022 TIME: 6:00 PM -> Description: This is the soundI bought a ticket to the worldBut now I've come back againWhy do I find it hard to write the next line?Oh, I want the truth to be saidI know this much is true [...]
Building Saar Raz’s clang concepts branch
A Recipe for building Saar Raz's clang concepts branch Saar Raz has been working on a Concepts implementation, available at https://github.com/saarraz/clang-concepts It's not much harder to build it than clang usually is, it's just a matter of getting things checked out into the right places before configuring the build. Just like LLVM and clang normally. [...]
Should Unicode literals be guaranteed to be well-formed?
TL;DR Betteridge's law applies: No. Are you still here? Unicode Literals In C++ 20 there are 2 kinds and 6 forms of Unicode literals. Character literals and string literals, in UTF-8, UTF-16, and UTF-32 encodings. Each of them uses a distinct char type to signal in the type system what the encoding is for the [...]
Litmus Tests for Multithreaded Behavior
/* @licstart The following is the entire license notice for the JavaScript code in this tag. Copyright (C) 2012-2018 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GNU GPL) as published by the Free [...]
Multithread Experiments
An Experiment Collects Samples I'm modelling this in order to run bits of code like the various litmus tests used to describe multi-core architectures. A set of functions to be run in parallel that may or may not write to a result, which type is a property of the Test being run. The Experiment will [...]
Why std::bind can’t be (formally) deprecated
Yes: std::bind should be replaced by lambda For almost all cases, std::bind should be replaced by a lambda expression. It's idiomatic, and results in better code. There is almost no reason post C++11 to use std::bind. Doing so is quite straightforward, capture each bind argument by value in the lambda capture list, and provide auto [...]