Thanks for an excellent contribution. This class shows a great mastery of the language's use of operator overloading. By the way, I used some of the design elements in this class for creating 48-bit and 64-bit "native" datatypes for (other, microprocessor) c++ compilers which do not support __int64. Chris.
Cool stuff, but with all the implementation code in the header it's difficult to see the interface. I would prefer the implementation moved into a separate .inl file. Now all I need to do is understand how it works :-)