On Namespaces

This work is about C++ namespaces.

This is not about C#, Java, nor any other language designed with alternative brevity.

TL;DR

  • Namespaces are for organising code not people
  • Keep namespace nesting to a minimum
  • Strive for memorable and easy-to-type namespaces
  • using namespace shouldn’t exist outside of...

C++20 Concepts

A quick syntax-based overview of C++20 Concepts, as they are in the standard (circa January 2020).

TL;DR

With the release of MSVC 16.3 (and some holiday time), I decided to convert my Eric Niebler-inspired templated SFINAE hocus-pocus approximation of concepts into actual concepts. But it’s so hard to find...

Allocators & Empty Base Optimization

Sometimes you have things (often allocators) that have no members and you want them not to be given arbitrary size.

Let’s say, for the sake of argument, you’re writing a drop-in replacement of std::vector. You’ll quickly notice that if you’re to maintain a standards-compatible interface, you’ll need to...

The Difficult Second Update

So I burnt out a bit towards the end of last year, just as I started this blog - perhaps because I did. Either way, it went dead. And that isn’t cool. But now I’m back, ready to continue working on shiny, voxelizing things. This post is going to...

Canonical Hello World

This is the first post of my blog. There are many like it, but this one is mine.

Overview

This blog is mainly going to be documenting my journey in writing a voxel-based graphics engine (called shiny). This isn’t my first trip to the rodeo, but it is...

On Namespaces

This work is about C++ namespaces.

This is not about C#, Java, nor any other language designed with alternative brevity.

TL;DR

  • Namespaces are for organising code not people
  • Keep namespace nesting to a minimum
  • Strive for memorable and easy-to-type namespaces
  • using namespace shouldn’t exist outside of...

C++20 Concepts

A quick syntax-based overview of C++20 Concepts, as they are in the standard (circa January 2020).

TL;DR

With the release of MSVC 16.3 (and some holiday time), I decided to convert my Eric Niebler-inspired templated SFINAE hocus-pocus approximation of concepts into actual concepts. But it’s so hard to find...

Allocators & Empty Base Optimization

Sometimes you have things (often allocators) that have no members and you want them not to be given arbitrary size.

Let’s say, for the sake of argument, you’re writing a drop-in replacement of std::vector. You’ll quickly notice that if you’re to maintain a standards-compatible interface, you’ll need to...

The Difficult Second Update

So I burnt out a bit towards the end of last year, just as I started this blog - perhaps because I did. Either way, it went dead. And that isn’t cool. But now I’m back, ready to continue working on shiny, voxelizing things. This post is going to...

Canonical Hello World

This is the first post of my blog. There are many like it, but this one is mine.

Overview

This blog is mainly going to be documenting my journey in writing a voxel-based graphics engine (called shiny). This isn’t my first trip to the rodeo, but it is...