Time is best split into Date and Time. Number is best split into integer and real. The C++ data-types for each of these has been chosen to be:
(For the time being, there is no support for boost::posix::time.)
And you should add a extra string method to the debug as() method.
With these some basic methods can be added.