Figure 4: Partial listing of file conversions.h, which supplies needed conversions between numeric types
// Default conversion is the standard static cast template <class SrcType, class DstType> inline DstType & convert (const SrcType & src, DstType & dst) { return dst = static_cast<DstType>(src); } // Now define specific conversions: inline int convert (double src, int & dst) { return dst = (src > 0) ? static_cast<int>(src + 0.5) : static_cast<int>(src - 0.5); } inline unsigned int convert (double src, unsigned int & dst) { return dst = static_cast<unsigned int>(src + 0.5); } // Other conversions omited here to save magazine space