RSSAmplifier

Blog

Sy Brand

Personal blog for Sy Brand.

tartanllama.xyzRSS feed ↗52 posts

Latest posts

Building Native Plugin Systems with WebAssembly Components

Sandboxed plugins with well-defined interfaces

std::generator: Standard Library Coroutine Support

Generate sequences of values on-demand with coroutines

C++23's Fold Algorithms

Better folds for a modern language

C++23's Deducing this

What it is, why it is, how to use it

Abbreviated Function Templates and Constrained Auto

C++20 features for more terse template code

Conditionally Trivial Special Member Functions

Why triviality matters and how you can propagate it

The Performance Benefits of Final Classes

How the final keyword aids devirtualization and makes your code faster

C++20's Conditionally Explicit Constructors

What this feature is, and how it simplifies code

Clear, Functional C++ Documentation with Sphinx + Breathe + Doxygen + CMake

Tools and techniques to make your documentation better

Guaranteed Copy Elision Does Not Elide Copies

It should be "deferred temporary materialization"

Spaceship Operator

C++20's feature for better comparisons

Simple Named Boolean Arguments

A handy trick

Function Template Partial Ordering: Worked Examples

For deconfounding complex template rules

std::accumulate vs. std::reduce

The differences between the two and when you should use them

Custom Alias Analysis in LLVM

A lightning overview of building a custom compiler alias analysis pass

No More Pointers

This was a joke post, please don't shout at me

Do Compilers Take Inline as a Hint?

Do compilers really ignore the inline keyword for optimizations?

Passing Overload Sets to Functions

The nightmare of higher-order functions plus overloading

A Call for Data on Exceptions

Are exceptions really expensive?

Functional Exceptionless Error Handling with Optional and Expected

How std::optional and std::expected can improve our error handling code

Meeting C++ 2017 Trip Report

My first trip to Meeting C++

Detection Idiom: A Stopgap for Concepts

How C++20 concepts will make our lives better, and how the detection idiom gets us part way there

Learning C++

Tips and resources

void C::C::C::A::A::A::foo(): Valid Syntax Monstrosity

Please don't write this code

Writing a Linux Debugger Part 10: Advanced Topics

Future work for those suitably brave

Writing a Linux Debugger Part 9: Handling Variables

Adding support reading variables to the debugger

C++17 attributes: maybe_unused, fallthrough and nodiscard

New attributes in C++17 and how they can help you

Metaclasses for Embedded Domain Specific Languages

How metaclasses could be used to generate code for languages embedded in C++

Writing a Linux Debugger Part 8: Stack Unwinding

Adding support for backtraces

Writing a Linux Debugger Part 7: Source-Level Breakpoints

Adding support for setting breakpoints on lines of source code and functions

Accelerating your C++ on the GPU with SYCL

Writing code targeting heterogeneous processors from standard C++

Writing a Linux Debugger Part 6: Source-Level Stepping

Adding step over, out, and in support to the debugger

ACCUConf 2017 Trip Report

How I got on at my first conference

ACCUConf 2017 Workshop Day Report

My introduction to Chapel

Writing a Linux Debugger Part 5: Source and Signals

Implementing source-level DWARF primitives and printing out source context

Writing a Linux Debugger Part 4: Elves and Dwarfs

Implementing reading and writing from and to registers and memory

Writing a Linux Debugger Part 3: Registers and Memory

Implementing reading and writing from and to registers and memory

Writing a Linux Debugger Part 2: Breakpoints

Implementing breakpoints in the debugger

Writing a Linux Debugger Part 1: Setup

Beginning the journey of writing a Linux debugger

Building my First Custom Keyboard

Custom layout, custom plates, hand-wired

Initialization in C++ is Bonkers

Just absurd

Template Argument Deduction for Class Template Constructors

How to use class template argument deduction in C++17

Lazy Generators: Template Deduction on the Left-Hand Side

Deducing template arguments based on assignment context

Simplifying Templates and #ifdefs with if constexpr

Making your code simpler and more maintainable

Type Erasure with Unified Call Syntax

Supporting member and non-member call syntax while bridging compile time and run time

Exploding Tuples with Fold Expressions

Iterating over tuples without the pain

Selective Default Template Arguments

Several options for ergonomic templates with many default arguments

Declaring Classes in Function Declarations

You can do this, but don't

The Effect of a try-catch-rethrow

A subtle way in which try-catch-rethrow blocks are not equivalent to standard blocks

integral_variable: A compile-time assignable variable

Metaprogramming horrors