Bothell, WA 98011
These projects are oriented towards programming tools rather than applications.
I created a class that mimics a reference and should be able to be optimized away. I also added a reference class that can change what it refers to. It is called ReRef.
Quantity / Built-in Types (2006)
This set of headers first define typedefs for the built-in types based on their size. It also has a class called Quantity that takes a type as a template parameter and treats it like that type. The Quantity class should be able to be optimized away for performance.
Endian (2006, 2009)
I created a class that determines the endianness of a system at run-time using a static method that returns a Boolean value. The Boolean value is calculated only once and stored as a static variable within the method to increase speed. Later, Andrew Ford submitted to me a compile-time variant that utilizes Boost.
I have recently added some additional specializations of the ReverseBytes methods for increased performance. One particular modification uses the SSSE3 SIMD extensions to swap bytes in hardware. This functionality may not be supported on all systems. However, the core functionality still cross-platform.
Type - Basic Type Wrappers (2006)
Building on the Quantity class, I created wrapper classes to hold the built-in types and offer a transparent interface to the data that will be optimized away for performance. The primary impetus for creating this wrapper and typedefs for the built-in types was due to my frustration while working on a uniform Functor that works transparently with global functions and object methods. It was a tremendous hassle and was surprisingly complicated for so little syntactic difference between the two types of functions.
Functor - Extended Loki-Library Functors (2006)
I modified the Functor code to make an explicit interface that all Functors share. Using this interface, I reorganized the code and added a few variants of my own.
This is an initial attempt at creating a run-time alternative to QT's signal/slot functionality. It uses functors for this purpose.