C++Now 2022
2022-05-01..2022-05-06
Aspen, United States
C++Now ·
[C++Now 2017, C++Now 2018, C++Now 2019, C++Now 2022, C++Now 2023, C++Now 2024, C++Now 2026]
who it's for
C++ library authors, template metaprogrammers, embedded systems engineers, compiler engineers, software engineering managers, numerical computing engineers, graphics and raster engineers
topics
pointer provenance and ptr-to-int casts; compile-time initialization and build (CIB); constexpr template metaprogramming techniques; concepts workarounds and negation; proof-carrying types and encoded predicates; tuple set operations with constexpr string keys; ranges implementation and iterator size; multi-dimensional arrays with value semantics; std::filesystem path encoding on Windows; spinlock implementation in C++; sub-pixel raster buffer processing; continuous vs discrete numerical modelling
| title | author | length |
|---|---|---|
| Have You Heard of Provenance? | Ezra Chung | 06m |
Explains why C/C++ pointer provenance matters by showing a real clang-tidy warning performance-no-int-to-ptr and a concrete example: casting adjacent objects… | ||
| Compile-time Initialization & Build Library for Composing Modular Firmware | Luke Valenty | 06m |
A compile-time library called the Compile-time Initialization and Build (CIB) composes modular embedded firmware by wiring independent components into nexus… | ||
| Software Development as an Emotional System | Michael Chadwick | 05m |
Claim: software development functions as an emotional system where anxiety is inevitable and grows in groups, driving short-term compromises that break… | ||
| Turing Completeness Is Overrated: and here's why | Ben Deane | 06m |
Argues that Turing completeness is overvalued because untyped lambda calculus plus the Y combinator produces logical inconsistency, while adding types (simply… | ||
| Getting to C++Now! | Amir Kirsh | 05m |
A humorous road trip account claims driving to CppNow, showing photos some real and some staged, and asserts Colorado adopted a flag of Colorado in the 90s… | ||
| Constraints not Satisfied | Kris Jusiak | 06m |
Shows library techniques that work around C++20 limitations: passing concepts by wrapping them in lambda-wrapped concepts so static_assert and requires can be… | ||
| Proof-carrying types | Peter Van Sandt | 05m |
A system encodes runtime predicates into types so preconditions are proved once at construction and then carried through calls, with axioms used to infer and… | ||
| Quantifying Dinosaur Pee | John Lakos | 06m |
Back-of-envelope estimates and compounding models peg roughly ≈3.11% of Earth’s water as untainted by dinosaur pee in one model, while an alternate bird-based… | ||
| Improve Compile Time With One Weird Trick Template Meta Programmers Hate! | Luke Valenty | 05m |
Converts compile-time type queries into runtime string comparisons by turning types into type-erased array of string_view entries indexed to the original… | ||
| C++ Multi-dimensional Arrays With Value Semantics | Alfredo A. Correa | 06m |
Library "multi" implements C++ multi-dimensional arrays with value semantics (deep-copyable, resizable containers) and reference-like subviews that are… | ||
| Best of think-cell's Range Library | Sebastian Theophil | 05m |
Range objects measure 16 bytes for a simple transform and still keep 16‑byte iterators even after adding a filter while the range grows to 24 bytes; chaining… | ||
| Filesystem Surprise | Michael Chadwick | 05m |
Notes that std::filesystem::path constructors assume the source char encoding is the OS native narrow encoding, so a UTF‑8 std::string on Windows is… | ||
| David Stone is Highly Qualified | David Stone | 05m |
Argues for reframing const debates into north const / central const and inventing alphabetized consts as a joke, then proposes a concrete alternative use of… | ||
| The Glory of Six Dots | Zhihoa Yuan | 04m |
Proposal treats the old variadic C-style syntax as a usable parameter-pack syntax and defines a class-template partial specialization for std::function that… | ||
| Sub Pixel Accuracy for Raster Buffer Processing | Brian DeYoung | 06m |
Stores geotiff origin plus x/y resolution and build an affine transform to map lat/long to subpixel floating coordinates (example: a 5m×5m pixel gives a float… | ||
| A Spinlock Implementation | Fedor G Pikus | 06m |
Microbenchmarks show an atomic increment hits ~200M ops/sec on one thread and falls to ~80M at 16 threads, while the custom spinlock sustains about ~167M… | ||
| Cotuple - A Trip to Category Theory and Back | Tobias Löw | 05m |
Explains that a C++ struct implements the categorical product with projection methods corresponding to getters and a unique mediating function that builds the… | ||
| Are We There Yet? | Staffan Tjernsstrom | 06m |
P0593R6 makes a concrete change: it defines implicit-lifetime types (aggregates with a trivial eligible constructor and trivial non-deleted destructor) so… | ||
| Expect(optimized) | Kris Jusiak | 05m |
Method uses compiler attributes to mark function start/end, prevents reordering, compiles and dumps machine code, then compare instruction size between a… | ||
| Initialisation in Modern C++ | Timur Doumler | 06m |
C++20 adds direct aggregate initialization using parentheses which enables perfect forwarding for aggregates so functions like make_shared and… | ||
| nothing matches | ||