These operators declare the compile-time operators needed to support dimensional analysis algebra. They require the use of Boost.Typeof. Typeof helper classes define result type for heterogeneous operators on value types. These must be defined through specialization for powers and roots.