I've made some new code available in the "code" section of
semantics.org:
====== TYPEINTS ======
Have you ever had to perform compile time arithmetic on 1000-bit
integers? It happens. Unfortunately, C++ compilers generally limit the
precision of integer constant-expressions to 32 or 64 bits. A typeint
is a way of representing an extended precision integer as a type, and
arithmetic calculation as type algebraic manipulation.
The typeint implementation given here will be described in more detail
in my February C/C++ Users Journal online experts column. In addition
to the typeint implementation, there is a reimplementation of the typeof
operator to use typeints for its extended precision compile time
arithmetic.
====== NAMED EXPANDING MONOSTATES ======
The code for the Named Expanding Monostate protopattern described in the
Once, Weakly of 6 November is now available as well. An Expanding
Monostate is a version of the Monostate pattern that allows additional
data members to be added or removed from the Monostate at compile time
without having to modify the Monostate code. A Named Expanding
Monostate allows the use of readable names for the Monostate members.